本文目錄一覽:
- 1、php框架相對原生php影響性能或效率嗎
- 2、當今流行的PHP框架中各自都有什麼特點,優缺點都在哪?
- 3、使用過哪些php框架.試描述其優劣點
- 4、如何通過監控 php-fpm status排查問題
- 5、如何利用PHP監控網站運行狀態
php框架相對原生php影響性能或效率嗎
影響不大。因為http的請求,會受到網絡速度的限制。與此相比,程序內部實現造成的影響,可能是很微小的。目前流行的php框架有yii、ci等。用它們編寫一個簡單的程序,和不使用框架,運行速度幾乎沒有差別。但使用框架時也需注意一些問題。
一個網頁響應速度,和其網站架構、HTML的結構和比較耗時的操作關係較大。
其中網站架構涉及硬件設備和應用程序分布式布署的問題,對性能影響最為顯著。一些程序難以解決的性能瓶頸,要用架構設計去解決。比如數據庫讀寫分離。
優化HTML結構也是優化網站的課題之一。更為簡約的編碼,可以節約帶寬,也能加快瀏覽器渲染的速度。頁面字節大小,是前端設計的重要指標。異步加載和代碼壓縮,是減少網頁下載時間的重要手段。
程序比較耗時的操作,如數據庫查詢、圖片處理、壓縮文件等。其中數據庫的因素較為普遍。這裡要提到一個框架的問題。yii框架自帶的數據庫模型非常強大,有了它我們基本上不用寫SQL語句。但是,它自己生成的SQL語句不一定是最佳的。為了保證網站性能,關鍵的查詢需要自己把握。而且比較複雜的抽象,也會降低性能。它的官方文檔中,也不建議在大型網站中使用模型。
綜上,框架的特性要選擇性地使用。使用前要仔細閱讀文檔。優化網站要考慮多種因素,而不是僅僅關心程序的實現。要杜絕對程序效率影響不大的"微優化"。
當今流行的PHP框架中各自都有什麼特點,優缺點都在哪?
1. Yii Yii是一個基於組件的高性能的PHP的框架,用於開發大規模Web應用。Yii採用嚴格的OOP編寫,並有着完善的庫引用以及全面的教程。從MVC,DAO/ActiveRecord,widgets,caching,等級式RBAC,Web服務,到主體化,I18N和L10N,Yii提供了今日Web 2.0應用開發所需要的幾乎一切功能。而且這個框架的價格也並不太高。事實上,Yii是最有效率的PHP框架之一。 2. CodeIgniter CodeIgniter是一個應用開發框架——一個為建立PHP網站的人們所設計的工具包。其目標在於快速的開發項目:它提供了豐富的庫組以完成常見的任務,以及簡單的界面,富有條理性的架構來訪問這些庫。使用CodeIgniter開發可以往項目中注入更多的創造力,因為它節省了大量編碼的時間。3. CakePHPCakePHP是一個快速開發PHP的框架,其中使用了一些常見的設計模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目標在於提供一個令任意水平的PHP開發人員都能夠快速開發web應用的框架,而且這個快速的實現並沒有犧牲項目的彈性。4. PHPDevShellPHPDevShell是一個開源(GNU/LGPL)的快速應用開發框架,用於開發不含Javascript的純PHP。它有一個完整的GUI管理員後台界面。其主要目標在於開發插件一類的基於管理的應用,其中速度、安全、穩定性及彈性是最優先考慮的重點。其設計形成了一個簡單的學習曲線,PHP開發者無需學習複雜的新術語。PHPDevShell的到來滿足了開發者們對於一個輕量級但是功能完善,可以無限制的進行配置的GUI的需求。5. AkelosAkelos PHP框架是一個基於MVC設計模式的web應用開發平台。基於良好的使用習慣,使用它可以完成如下任務:◆方便的使用Ajax編寫views◆通過控制器管理請求(request)及響應(response)◆管理國際化的應用◆使用簡單的協議與模型及數據庫通信你的Akelos應用可以在大多數共享主機服務供應方上運行,因為Akelos對服務器唯一的要求就是支持PHP。因此,Akelos PHP框架是理想的用於發布單獨web應用的框架,因為它不需要非標準PHP配置便能運行。6. Symfony Symfony是一個用於開發PHP5項目的web應用框架。這個框架的目的在於加速web應用的開發以及維護,減少重複的編碼工作。Symfony的系統需求不高,可以被輕易的安裝在任意設置上:你只需一個Unix或Windows,搭配一個安裝了PHP5的網絡服務器即可。它與差不多所有的數據庫兼容。Symfony的價位不高,相比主機上的花銷要低得多。對於PHP開發者而言,使用Symfony是一件很自然的事,其學習曲線只有短短一天。乾淨的設計以及代碼可讀性將縮短開發時間。開發者可以將敏捷開發的原理(如DRY,KISS或XP等)應用在其中,將重點放在應用邏輯層面上,而不用花費大量時間在編寫沒完沒了的XML配置文件上。Symfony旨在建立企業級的完善應用程序。也就是說,你擁有整個設置的控制權:從路徑結構到外部庫,幾乎一切都可以自定義。為了符合企業的開發條例,Symfony還綁定了一些額外的工具,以便於項目的測試,調試以及歸檔。7. PradoPRADO團隊由一些PRADO狂熱者組成,這些成員開發並推動PRADO框架以及相關項目的進行。PRADO的靈感起源於Apache Tapestry。從04年開始,PRADO成為SourceForge上的開源項目之一。這個項目目前進展到了3.x版本。8. Zend作為PHP藝術及精神的延伸,Zend框架的基礎在於簡單,面向對象的最佳方法,方便企業的許可協議,以及經過反覆測試的快速代碼庫。Zend框架旨在建造更安全,更可靠的Web 2.0應用及web服務,並不斷從前沿廠商(如Google,Amazon,Yahoo,Flickr,StrikeIron和ProgrammableWeb等)的API那裡吸收精華。9. ZooP Zoop PHP框架,意為Zoop面向對象的PHP框架。這是個穩定,可伸縮並可移植的框架。從誕生到現在的5年間,已經在不少產品開發中被使用。Zoop是一個快速,有效並乾淨的框架。它的伸縮性很好,你可以只安裝你需要的功能。對代碼並不很熟悉的開發者也可以通過Zoop快速的開發安全的web應用。熟練的開發者則可以更加將Zoop的彈性利用到極致。Zoop建議將display,logic以及數據層(MVC)分開使用。Zoop由很多組件和項目集合而成,其中包括smarty和prototype AJAX框架,PEAR模塊等。高效的核心組件提供了很多你原本需要自己編碼來實現的功能。Zoop內置的糾錯功能可以通過配置實現生產環境下的錯誤日誌生成,這個錯誤日誌提供了很多信息,可讀性很高,可以更輕易的尋找並排除錯誤。Zoop的一個特別之處在於其GuiControls,在PHP中是一個相當革新的想法。它提供了很多form widgets與驗證完整的集合到一起,並形成了一個可以輕鬆打造個性化GuiControls的框架。10. QPHPQPHP,意為快速PHP,它是一個與ASP.NET類似的MVC框架。基本上它是這樣一個情況:◆整合了Java和C#的美感◆除去了在其他PHP框架中使用的Perl形式的意義含糊的語言◆大量基於OOP的概念 Framework Comparison ChartFrameworkPHP4PHP5MVC1Multiple DB’s2ORM3DB Objects4Templates5Caching6Validation7Ajax8Auth Module9Modules10Zend Framework—–CakePHP–Symfony Project—Seagull Framework-WACT—–Prado—-PHP on TRAX—–ZooP Framework-eZ Components—–CodeIgniter—#1: Indicates whether the framework comes with inbuilt support for a Model-View-Controller setup.
#2: Indicates whether the framework supports multiple databases without having to change anything.
#3: Indicates whether the framework supports an object-record mapper, usually an implementation of ActiveRecord.
#4: Indicates whether the framework includes other database objects, like a TableGateWay.
#5: Indicates whether the framework has an inbuilt template engine.
#6: Indicates whether the framework includes a caching object or some way other way of caching.
#7: Indicates whether the framework has an inbuilt validation or filtering component.
#8: Indicates whether the framework comes with inbuilt support for Ajax.
#9: Indicates whether the framework has an inbuilt module for handling user authentication.
#10: Indicates whether the framework has other modules, like an RSS feed parser, PDF module or anything else (useful).
使用過哪些php框架.試描述其優劣點
1、BroPHP框架:
優點:輕量級學習型框架,配置簡單,操作簡單,容易上手,提供了比較全面的文檔。 缺點:
2、ThinkPHP框架:
優點:功能比較全面,配置相對比較簡單,操作相對比較簡單,容易上手。
缺點:麻煩的URL路由,不支持模板的部分緩存,提供的操作方法太多,新手不知如何選擇,文檔不夠全面。
3.CodeIgniter框架:
優點:
1. 配置簡單,全部的配置使用PHP腳本來配置,執行效率高;具有基本的路由功能,能夠進行一定程度的路由;具有初步的Layout功能,能夠製作一定程度的界面外觀;數據庫層封裝的不錯,具有基本的MVC功能
2. 快速簡潔,代碼不多,執行性能高,PHP框架簡單,容易上手,學習成本低,文檔詳細;自帶了很多簡單好用的library,框架適合小型應用
缺點:
1. 把Model層簡單的理解為數據庫操作
2. PHP框架略顯簡單,只能夠滿足小型應用,略微不太能夠滿足中型應用需要
如何通過監控 php-fpm status排查問題
明:
php-fpm和nginx一樣,內建了個狀態頁,可以通過該狀態頁了解監控php-fpm的狀態
具體:
1. php-fpm.conf開用php-fpm狀態功能
# grep pm.status_path /usr/local/php/etc/php-fpm.conf
pm.status_path = /phpfpm_status
默認情況下為/status,當然也可以改成/phpfpm_status等,我這裡是改成/phpfpm_status啦
2. nginx配置
在默認主機裡面加上location或者你希望能訪問到的主機裡面。
server {
listen 80;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
}
location /phpfpm_status {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
}
3. 重啟nginx、php-fpm使配置生效
# /etc/init.d/nginx restart
# /etc/init.d/php-fpm restart
如何利用PHP監控網站運行狀態
那就自動刷新了 一可以網頁的自動刷新功能 在網頁的開頭寫代碼 refresh表示刷新 content=3表示間隔3秒刷新一次 url表示刷新後跳轉的頁面,如果是本頁面,就寫本頁面的網址 再就是要用到ajax,這個我不太懂,所以就不說了
原創文章,作者:F0XTD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/128360.html