phpapc配置
『壹』 php常用框架(php常用框架有哪些)
php開發類似大眾點評用什麼框架用的是Phalcon框架。
Phalcon是基於C語言的擁有高性能和低功耗等特點的開源PHP開發框架。它是一個全棧的PHP框架,為開發者提供了網站及應用開發所需的大量高級工具。Phalcon中的所有函數都以PHP類的方式呈現,開發者既無需學習和使用C語言,又無需擔心性能的問題。性能優越是Phalcon受歡迎的最主要的因素。
PHP中的各種框架CodeIgniter、CakePHP、ZendFramework、Symfony這幾個是國外的,你可以參考下
CodeIgniter
優點:
1.配置簡單,全部的配置使用PHP腳本來配置,執行效率高;具有基本的路由功能,能夠進行一定程度的路由;具有初步的Layout功能,能夠製作一定程度的界面外觀;資料庫層封裝的不錯,具有基本的MVC功能
2.快速簡潔,代碼不多,執行性能高,框架簡單,容易上手,學習成本低,文檔詳細;自帶了很多簡單好用的library,框架適合小型應用
缺點:
1.把Model層簡單的理解為資料庫操作
2.框架略顯簡單,只能夠滿足小型應用,略微不太能夠滿足中型應用需要
評價:
總體來說,拿CodeIgniter來完成簡單快速的應用還是值得,同時能夠構造一定程度的layout,便於模板的復用,數據操作層來說封裝的不錯,並且CodeIgniter沒有使用很多太復雜的設計模式,執行性能和代碼可讀性上都不錯。至於附加的library也還不錯,簡潔高效。
CakePHP
優點:
1.CakePHP是最類似於RoR的框架,包括設計方式,資料庫操作的ActiveRecord方式;設計層面很優雅,沒有自帶多餘的library,所有的功能都是純粹的框架,執行效率還不錯;資料庫層的hasOne,hasMany功能很強大,對於復雜業務處理比較合適;路由功能,配置功能還不錯;自動構建腳手架(scaffold)很強大;適合中型應用;基本實現過了MVC每一層;具有自動操作命令行腳本功能;
2.文檔比較全,在國內推廣的比較成功,大部分都知道CakePHP,學習成本中等
缺點:
1.CakePHP非常嚴重的問題是把Model理解為資料庫層操作,嚴重影響了除了資料庫之外的操作能力
2.CakePHP的cache功能略顯薄弱,配置功能稍嫌弱;CakePHP不適合大型應用,只適合中型應用,小型應用來說略微的學習成本高了點
評價:
總體來說CakePHP框架代表了PHP框架很重要的一個時代和代表,並且目前發揮著很重要的作用,不少自己寫的框架都模仿了CakePHP的方式,是個里程碑式的產品;CakePHP透露著RoR的敏捷開發方式和把資料庫操作認為是唯一Model的設計思想,作為開發快速應用和原型是絕好的工具;同樣,用來做Web2.0網站的開發框架,也是值得選擇的。
【ZendFramework】
優點:
1.官方出品,自帶了非常多的library,框架本身使用了很多設計模式來編寫,架構上很優雅,執行效率中等;MVC設計中,比較簡潔,具有路由功能,配置文件比較強大(能夠處理XML和phpINI),各種library很強大,是所有PHP框架中各種功能最全面的,包括它不僅是一個框架,更是一個大類庫(取代PEAR),這是它的主要特色;能夠直觀的支持除資料庫操作之外的Model層(比CodeIgniter和CakePHP強),並且能夠很輕易的使用Loader功能載入其他新增加的Class;Cache功能很強大,從前端Cache到後端Cache都支持,後端Cache支持Memcache、APC、SQLite、文件等等方式;資料庫操作功能很強大,支持各種驅動(適配器)
2.文檔很全,在國內社區很成熟,並且目前不少Web2.0網站在使用,學習成本中等
缺點:
1.MVC功能完成比較弱,View層簡單實現(跟沒實現一樣),無法很強大的控制前端頁面
2.沒有自動化腳本,創建一個應用,包括入口文件,全部必須自己手工構建,入門成本高
3.ZendFramework作為一個中型應用框架問題不大,也能夠勉強作為大型應用的框架,但是作為一個很成熟的大型PHP框架來說,還需要一些努力
評價:
作為官方出品的框架,ZendFramework的野心是可以預見的,想把其他框架擠走,同時封裝很多強大的類庫,能夠提供一站式的框架服務,並且他們的開發團隊很強大,完全足夠有能力開發很強大的產品出來,所以基本可以確定的是ZendFramework前途無量,如果花費更多的時間去完善框架。同樣的,ZendFramework架構本身也是比較優雅的,說明Zend官方是有很多高手的,設計理念上比較先進,雖然有一些功能實現的不夠完善,比如View層,自動化腳本等等,這些都有賴於未來的升級。總體來說ZendFramework是最值得期待的框架,當然,你目前要投入你的項目中使用也是完全沒問題的。
【Symfony】
優點:
1.Symfony是我了解的PHP框架中功能最強大的,而且我使用時間比較長,但是很多功能還是沒有挖掘出來;它完整實現了MVC三層,封裝了所有東西,包括$_POST,$_GET數據,異常處理,調試功能,數據檢測;包含強大的緩存功能,自動載入Class(這個功能很爽),強大的i18n國家化支持;具有很強大的view層操作,能夠零碎的包含單個多個文件;非常強大的配置功能,使用yml配置能夠控制所有框架和程序運行行為,強大到讓人無語;能夠很隨意的定義各種自己的class,並且symfony能夠自動載入(autoload)這些class,能夠在程序中隨意調用;包含強大的多層級項目和應用管理:Project--Application--Mole--Action,能夠滿足一個項目下多個應用的需要,並且每層可以定義自己的類庫,配置文件,layout;非常強大的命令行操作功能,包括建立項目、建立應用、建立模塊、刷新緩存等等;
2.Symfony絕對是開發大型復雜項目的首選,因為使用了Symfony,將大大節約開發成本,並且多人協作的時候,不會出現問題,在Project級別定義好基礎Class以後,任何模塊都能夠重用,大大復用代碼
缺點:
1.資料庫操作model採用了重量級的propel和creole,不過在我測試的版本中已經把他們移到了addon里,可用可不用
2.緩存功能無法控制,每次開發調試總是緩存,需要執行symfonycc,symfonyrc來清除和重建緩存;
3.效率不是很高,特別是解析模板和讀取配置文件的過程,花費時間不少;
4.學習成本很高,並且國內沒有成熟的社區和文檔,連中文手冊都沒有,相應的要掌握所有功能,需要花費比較多的時間
評價:
Symfony絕對是企業級的框架,唯一能夠貌似能夠跟Java領域哪些強悍框架抗衡的東西;強悍的東西,自然學習復雜,但是相應的對項目開發也比較有幫助,自然是推薦復雜的項目使用Symfony來處理,覺得是值得,後期的維護成本比較低,復用性很強。相應的如果使用Symfony的應該都是比較復雜的互聯網項目,那麼相應的就要考慮關於資料庫分布的問題,那麼就需要拋棄Symfony自帶的資料庫操作層,需要自己定義,當然了,Symfony支持隨意的構造model層。
【總評】
以上數款框架,各有特色,而且都是開源項目,不過框架針對的項目不一樣,一般來說CodeIngiter比較適合小型項目,CakePHP和ZendFramework比較適合中型項目,Symfony比較適合大型重量級項目,在項目選型的時候,要充分考慮框架的可以定製性、擴展性,因為每個項目都無法確定你是否會隨著需求的變化進行改變。
相對來說,ZendFramework和Symfony應對變化的能力比較強,特別是能夠隨意定製model層的Class,能夠非常方便增加自己業務或者數據處理類,我是個人比較推薦在中大型項目中使用的框架。CodeIngiter和CakePHP在中小型項目中同樣能夠發揮重大作用,快速開發和原型構建,非常適合目標不清晰的原型項目的開發。了解一個框架最好的方式就是使用它,學習它最好的方式就是看視頻。
仁者見仁,智者見智,在項目挑選框架的時候,請先認真考察項目的需求和未來的變化,然後選擇合適的框架,讓項目開發速度和後期維護性得到一個合理的平衡,當然了,也許,自己寫一個框架更適合。
PHP框架有哪些?使用PHP框架可以更快更簡單的部署項目並提高開發效率,但學習使用這些框架需要付出額外的學習成本。
最流行的PHP框架包括:Symfony,ZendFramework,Laravel、Phalcon、CodeIgniter、Yii、ThinkPHP等等。
php除了mvc還有什麼架構
1.Yii
Yii是一個基於組件的高性能的PHP的框架,用於開發大規模Web應用。Yii採用嚴格的OOP編寫,並有著完善的庫引用以及全面的教程。從MVC,DAO/ActiveRecord,widgets,caching,等級式RBAC,Web服務,到主體化,I18N和L10N,Yii提供了今日Web2.0應用開發所需要的幾乎一切功能。而且這個框架的價格也並不太高。事實上,Yii是最有效率的PHP框架之一。
2.CodeIgniter
CodeIgniter是一個應用開發框架——一個為建立PHP網站的人們所設計的工具包。其目標在於快速的開發項目:它提供了豐富的庫組以完成常見的任務,以及簡單的界面,富有條理性的架構來訪問這些庫。使用CodeIgniter開發可以往項目中注入更多的創造力,因為它節省了大量編碼的時間。
3.CakePHP
CakePHP是一個快速開發PHP的框架,其中使用了一些常見的設計模式如ActiveRecord,AssociationDataMapping,FrontController以及MVC。其主要目標在於提供一個令任意水平的PHP開發人員都能夠快速開發web應用的框架,而且這個快速的實現並沒有犧牲項目的彈性。
4.PHPDevShell
PHPDevShell是一個開源(GNU/LGPL)的快速應用開發框架,用於開發不含Javascript的純PHP。它有一個完整的GUI管理員後台界面。其主要目標在於開發插件一類的基於管理的應用,其中速度、安全、穩定性及彈性是最優先考慮的重點。其設計形成了一個簡單的學習曲線,PHP開發者無需學習復雜的新術語。PHPDevShell的到來滿足了開發者們對於一個輕量級但是功能完善,可以無限制的進行配置的GUI的需求。
5.Akelos
AkelosPHP框架是一個基於MVC設計模式的web應用開發平台。基於良好的使用習慣,使用它可以完成如下任務:
◆方便的使用Ajax編寫views
◆通過控制器管理請求(request)及響應(response)
◆管理國際化的應用
◆使用簡單的協議與模型及資料庫通信
你的Akelos應用可以在大多數共享主機服務供應方上運行,因為Akelos對伺服器唯一的要求就是支持PHP。因此,AkelosPHP框架是理想的用於發布單獨web應用的框架,因為它不需要非標准PHP配置便能運行。
6.Symfony
Symfony是一個用於開發PHP5項目的web應用框架。
這個框架的目的在於加速web應用的開發以及維護,減少重復的編碼工作。
Symfony的系統需求不高,可以被輕易的安裝在任意設置上:你只需一個Unix或Windows,搭配一個安裝了PHP5的網路伺服器即可。它與差不多所有的資料庫兼容。Symfony的價位不高,相比主機上的花銷要低得多。
對於PHP開發者而言,使用Symfony是一件很自然的事,其學習曲線只有短短一天。干凈的設計以及代碼可讀性將縮短開發時間。開發者可以將敏捷開發的原理(如DRY,KISS或XP等)應用在其中,將重點放在應用邏輯層面上,而不用花費大量時間在編寫沒完沒了的XML配置文件上。
Symfony旨在建立企業級的完善應用程序。也就是說,你擁有整個設置的控制權:從路徑結構到外部庫,幾乎一切都可以自定義。為了符合企業的開發條例,Symfony還綁定了一些額外的工具,以便於項目的測試,調試以及歸檔。
7.Prado
PRADO團隊由一些PRADO狂熱者組成,這些成員開發並推動PRADO框架以及相關項目的進行。
PRADO的靈感起源於ApacheTapestry。從04年開始,PRADO成為SourceForge上的開源項目之一。這個項目目前進展到了3.x版本。
8.Zend
作為PHP藝術及精神的延伸,Zend框架的基礎在於簡單,面向對象的最佳方法,方便企業的許可協議,以及經過反復測試的快速代碼庫。Zend框架旨在建造更安全,更可靠的Web2.0應用及web服務,並不斷從前沿廠商(如Google,Amazon,Yahoo,Flickr,StrikeIron和ProgrammableWeb等)的API那裡吸收精華。
9.ZooP
ZoopPHP框架,意為Zoop面向對象的PHP框架。
這是個穩定,可伸縮並可移植的框架。從誕生到現在的5年間,已經在不少產品開發中被使用。Zoop是一個快速,有效並干凈的框架。它的伸縮性很好,你可以只安裝你需要的功能。
對代碼並不很熟悉的開發者也可以通過Zoop快速的開發安全的web應用。熟練的開發者則可以更加將Zoop的彈性利用到極致。
Zoop建議將display,logic以及數據層(MVC)分開使用。
Zoop由很多組件和項目集合而成,其中包括smarty和prototypeAJAX框架,PEAR模塊等。高效的核心組件提供了很多你原本需要自己編碼來實現的功能。Zoop內置的糾錯功能可以通過配置實現生產環境下的錯誤日誌生成,這個錯誤日誌提供了很多信息,可讀性很高,可以更輕易的尋找並排除錯誤。
Zoop的一個特別之處在於其GuiControls,在PHP中是一個相當革新的想法。它提供了很多formwidgets與驗證完整的集合到一起,並形成了一個可以輕松打造個性化GuiControls的框架。
10.QPHP
QPHP,意為快速PHP,它是一個與ASP.NET類似的MVC框架。基本上它是這樣一個情況:
◆整合了Java和C#的美感
◆除去了在其他PHP框架中使用的Perl形式的意義含糊的語言
◆大量基於OOP的概念
『貳』 apc是什麼
APC是一種緩存工具。下面從以下幾個方面對APC進行詳細描述。
1.APC的定義和作用
APC的英文全稱是Alternative PHP Cache,即PHP的備選緩存,它可以將PHP腳本緩存在內存中,大大提高PHP應用的運行速度。APC是以模塊形式存在於 PHP 中,可以在PHP被執行時調用,保存並加速 PHP 的執行過程。
2.APC的安裝和配置
APC是一個非常實用的緩存工具,只需簡單的安裝和配置即可上手使用。使用APC需要先安裝APC模塊,並在php.ini文件中進行一些配置,包括指定APC的緩存大小、啟用共享內存、設置緩存清除機制等。
總的來說,APC是一款非常實用的緩存工具,能夠有效提高PHP應用的運行速度、減少系統負載和提高用戶體驗。同時,使用前需注意一些事項和進行適當的配置和管理。
在實際應用中,APC常常和其他性能優化工具一起使用,如Memcached、Opcode Cache等,以實現更加完善的性能優化方案。APC也被廣泛應用於各種高性能PHP應用程序、網站和Web服務,為PHP開發者提供了強大的性能優化支持。
『叄』 HTTP 錯誤 500.0 - Internal Server Error C:\php-5.3.5\php.exe - FastCGI 進程意外退出
最常見的出錯提示:500 SERVER ERROR
主要是由於IWAM賬號(在我的計算機即是IWAM_MYSERVER賬號)的密碼錯誤造成了HTTP 500內部錯誤。在詳細分析HTTP500內部錯誤產生的原因之前,先對IWAM賬號進行一下簡要的介紹:IWAM賬號是安裝IIS5時系統自動建立的一個內置賬號,主要用於啟動進程之外的應用程序的I nternet信息服務。IWAM賬號的名字會根據每台計算機NETBIOS名字的不同而有所不同,通用的格式是IWAM_MACHINE,即由 「IWAM」前綴、連接線「_ 」加上計算機的NETBIOS名字組成。我的計算機的NETBIOS名字是MYSERVER,因此我的計算機上IWAM賬號的名字就是 IWAM_MYSERVER,這一點與I IS匿名賬號ISUR_MACHINE的命名方式非常相似。IWAM賬號建立後被 Active Directory、IIS metabase資料庫和COM+應用程序三方共同使用,賬號密碼被三方分別保存,並由操作系統負責這三方保存的IWAM密碼的同步工作。按常理說,由操作系統負責的工作我們大可放心,不必擔心出錯,但不知是B UG還是其它什麼原因,系統的對IWAM賬號的密碼同步工作有時會失敗,使三方IWAM賬號所用密碼不統一。當IIS或COM+應用程序使用錯誤I WAM的密碼登錄系統,啟動IIS Out-Of-Process Pooled Applications時,系統會因密碼錯誤而拒絕這一請求,導致IIS Out-Of-Process Pooled Applications啟動失敗,也就是我們在ID10004錯誤事件中看到的「不能運行伺服器{3D14228D-FBE1-11D0-995D- 00C04FD919C1} 」(這里{3D14228D-FBE1-11D0-995D-00C04FD919C1} 是IIS Out-Of-Process Pooled Applications的KEY),不能轉入IIS5應用程序,HTTP 500內部錯誤就這樣產生了。
『肆』 檢驗apc是什麼意思
APC是英文「Alternative PHP Cache」的縮寫,翻譯成中文就是「PHP備選緩存」。APC是一種可以加速PHP執行速度的軟體,它可以將PHP腳本中的代碼緩存到內存中,從而避免每次執行PHP腳本時都必須重新處理一遍。使用APC可以提高網站的性能和響應速度,減輕伺服器負擔,同時提高用戶體驗。
APC是一種開源軟體,可以通過下載和安裝的方式進行部署。在安裝完APC之後,可以在PHP配置文件中進行相關的配置,以啟用APC。在真正使用APC進行緩存時,需要在PHP腳本中添加特定的代碼,以告訴APC哪些部分需要進行緩存,以及緩存時間等相關參數。對於開發者來說,使用APC需要一定的技術儲備和經驗。
使用APC可以有效提高網站的性能和響應速度,減輕伺服器負擔,從而以更少的資源達到更好的用戶體驗。開發者在使用APC時需要根據實際情況對其進行調優,以達到最佳的性能和效果。同時,使用APC需要注意一些潛在的問題,例如APC本身會佔用伺服器的一部分內存,如果內存不足,可能會影響伺服器的正常運行。因此,需要在使用APC時謹慎操作,注意相關的風險和問題。
『伍』 APC有哪些默認屬性
一、APC緩存簡介
APC,全稱是Alternative PHP Cache,官方翻譯叫」可選PHP緩存」。它為我們提供了緩存和優化PHP的中間代碼的框架。 APC的緩存分兩部分:系統緩存和用戶數據緩存。
系統緩存
它是指APC把PHP文件源碼的編譯結果緩存起來,然後在每次調用時先對比時間標記。如果未過期,則使用緩存的中間代碼運行。默認緩存
3600s(一小時)。但是這樣仍會浪費大量CPU時間。因此可以在php.ini中設置system緩存為永不過期(apc.ttl=0)。不過如果這樣設置,改運php代碼後需要重啟WEB伺服器。目前使用較多的是指此類緩存。
用戶數據緩存
緩存由用戶在編寫PHP代碼時用apc_store和apc_fetch函數操作讀取、寫入的。如果數據量不大的話,可以一試。如果數據量大,使用類似memcache此類的更加專著的內存緩存方案會更好
緩存key生成規則
APC的緩存中的每個slot都會有一個key,key是
apc_cache_key_t結構體類型,除了key相關的屬性,關鍵是h欄位的生成。 h欄位決定了此元素落於slots數組的哪一個位置。對於用戶緩存和系統緩存,其生成規則不同。 用戶緩存通過apc_cache_make_user_key函數生成key。通過用戶傳遞進來的key字元串,依賴PHP內核中的hash函數(PHP的hashtable所使用的hash函數:zend_inline_hash_func),生成h值。
系統緩存通過apc_cache_make_file_key函數生成key。通過APC的配置項apc.stat的開關來區別對待不同的方案。在打開的情況下,即
apc.stat= On 時,如果被更新則自動重新編譯和緩存編譯。
『陸』 php如何實現上傳文件顯示上傳進度百分比
程序需要php的apc模塊的支持,關鍵點就是在上傳的form里添加一個hidden的inpu標簽,裡面要有name為
APC_UPLOAD_PROGRESS的屬性,value值為一個隨機數一遍多個人上傳。
apc模塊的安裝方法是,下載php_apc.dll放到ext文件夾下,在php.ini文件里添加
upload_max_filesize =100M
apc.rfc1867 = on
apc.max_file_size = 100M
extension=php_apc.dll
然後測試配置是否成功:
if(apc_fetch)
{echo "apc is working"}
else{echo "apc is not supported!";}