做一個專案用什麼框架?
就拿我接觸的幾種框架舉例:
yaf框架優點: 這個框架特別nice ,速度快個人除了tp5久喜歡這個框架啦
- 用C語言開發的PHP框架, 相比原生的PHP, 幾乎不會帶來額外的效能開銷.
- 所有的框架類, 不需要編譯, 在PHP啟動的時候載入, 並常駐記憶體.
- 更短的記憶體週轉週期, 提高記憶體利用率, 降低記憶體佔用率.
- 靈巧的自動載入. 支援全域性和區域性兩種載入規則, 方便類庫共享.
- 高效能的檢視引擎.
- 高度靈活可擴充套件的框架, 支援自定義檢視引擎, 支援外掛, 支援自定義路由等等.
- 內建多種路由, 可以相容目前常見的各種路由協議.
- 強大而又高度靈活的配置檔案支援. 並支援快取配置檔案, 避免複雜的配置結構帶來的效能損失.
- 在框架本身,對危險的操作習慣做了禁止.
- 更快的執行速度, 更少的記憶體佔用.
其實, 來點簡單的,我認為yaf最大的有點是效能,這不是一般的快,效能比其他php框架快上十幾倍,和原生的php相差不是非常多。缺點也很明顯,畢竟是C的擴充套件,如果程式有漏洞,作者未及時更新,使用者在不懂C的情況下,只能看著網站受辱或者祈禱,或者關閉網站.
ci框架優點:適合的專案型別:
快捷開發,部落格、小型網站
CodeIgniter的主要特性如下: * 基於 MVC 體系 * 超輕量級 * 對數種資料庫平臺的全特性支援的資料庫類 * Active Record 支援 * 表單與資料驗證 * 安全性與 XSS 過濾 * Session 管理 * 郵件傳送類,支援附件,HTML 或文字郵件,多協議(sendmail, SMTP 和 Mail)及更多。 * 影象處理類庫(剪裁,縮放,旋轉等)。支援 GD,ImageMagick 和 BetPBM * 檔案上傳類 * FTP 類 * 本地化 * 分頁 * 資料加密 * 基準測試 * 全頁面快取 * 錯誤日誌 * 應用程式評測 * 日曆類 * User-Agent 類 * Zip 編碼類 * 模板引擎類 * Trackback 類 * XML-RPC 類庫 * 單元測試類 * “搜尋引擎友好”的 URL * 靈活的 URI 路由 * 支援鉤子和類擴充套件 * 大量的輔助函式
yii框架優點:個人覺得適用於大型專案
1.從開發效率上來說,YII明顯更勝一籌
2.但是從入門難度上來說,TP更勝一籌,文件也是tp更好。
3.從支援來說,YII的擴充套件要更多,因為國外也有一撥人在開發,畢竟他在國外也算是主流框架之一。而tp的大部分擴充套件靠的是官方。
4.tp的定位可能是輕量級的快速開發,yii可能是中小量級的高效開發。兩者定位上可能有所區別。
5.有很多大站、高併發的站是用yii做的,導致在名聲上,yii聽上去比tp高大上,事實上初學者也不可能去做大專案。
6、Yii 框架的程式碼風格上於net比較接近,可以很方便的閱讀php程式碼,上手快。
7、Yii 的框架對擴充套件支援相當高,很方便擴充套件,
8、很重要的效能,Yii 的效能相對優秀,而且屬於輕量級框架。spl_autoload_register 預註冊,按需載入檔案等對效能都有很大提高。
8、modules 設計是一個很優秀的東西,他理論上可以無限巢狀,當然不建議巢狀超過三層。
9、widget 視窗小部件的應用,可以更加方便的構造通用模組。
10、其實整合的model,以及CActiveRecord模式 包含的驗證機制,都是很好的東西,但是約束性也相對強一些。
11、Yii框架封裝了各種快取方式,讓你只需要呼叫統一的方法就可以在不同的快取中切換。
tp5.0框架優點 這個是我最喜歡的框架做什麼專案都可以
1.高階模型:可以輕鬆支援序列化欄位、文字欄位、只讀欄位、延遲寫入、樂觀鎖、資料分表等高階特性。
2、檢視模型:輕鬆動態地建立資料庫檢視,多表查詢相對簡單。
3、關聯模型:讓你以出乎意料的簡單、靈活的方式完成多表的關聯操作。
4、模板引擎:系統內建了一款卓越的基於XML的編譯型模板引擎,支援兩種型別的模板標籤,融合了Smarty和JSP標籤庫的思想,支援標籤庫擴充套件。通過驅動還可以支援Smarty、EaseTemplate、TemplateLite、Smart等第三方模板引擎。
5、快取機制:系統支援包括檔案方式、APC、Db、Memcache、Shmop、Eaccelerator和Xcache在內的多種動態資料快取型別,以及可定製的靜態快取規則,並提供了快捷方法進行存取操作。
6、類庫匯入:ThinkPHP是首先採用基於類庫包和名稱空間的方式匯入類庫,讓類庫匯入看起來更加簡單清晰,而且還支援衝突檢測和別名匯入。為了方便專案的跨平臺移植,系統還可以嚴格檢查載入檔案的大小寫。
7、擴充套件機制:系統支援包括類庫擴充套件、驅動擴充套件、應用擴充套件、模型擴充套件、控制器擴充套件、標籤庫擴充套件、模板引擎擴充套件、Widget擴充套件、行為擴充套件和模式擴充套件在內的強大靈活的擴充套件機制,讓你不再受限於核心的不足和無所適從,隨心DIY自己的框架和擴充套件應用。
8、URL模式:系統支援普通模式、PATHINFO模式、REWRITE模式和相容模式的URL方式,支援不同的伺服器和執行模式的部署,配合URL路由功能,讓你隨心所欲的構建需要的URL地址和進行SEO優化工作。
9、編譯機制:獨創的核心編譯和專案的動態編譯機制,有效減少OOP開發中檔案載入的效能開銷。ALLINONE模式更是讓你體驗飛一般的感覺。
10、ORM:簡潔輕巧的ORM實現,配合簡單的CURD以及AR模式,讓開發效率無處不在。
11、查詢語言:內建豐富的查詢機制,包括組合查詢、複合查詢、區間查詢、統計查詢、定位查詢、動態查詢和原生查詢,讓你的資料查詢簡潔高效。
12、動態模型:無需建立任何對應的模型類,輕鬆完成CURD操作,支援多種模型之間的動態切換,讓你領略資料操作的無比暢快和最佳體驗。
13、分組模組:不用擔心大專案的分工協調和部署問題,分組模組幫你解決跨專案的難題。
14、AJAX支援:內建AJAX資料返回方法,支援JSON、XML和EVAL格式返回客戶端,並且系統不繫結任何AJAX類庫,可隨意使用自己熟悉的AJAX類庫進行操作。
15、多語言支援:系統支援語言包功能,專案和模組都可以有單獨的語言包,並且可以自動檢測瀏覽器語言自動載入對應的語言包。
16、模式擴充套件:除了標準模式外,系統內建了Lite、Thin和Cli模式,針對不同級別的應用開發提供最佳核心框架,還可以自定義模式擴充套件。
17、自動驗證和完成:自動完成表單資料的驗證和過濾,生成安全的資料物件。
18、欄位型別檢測:欄位型別強制轉換,確保資料寫入和查詢更安全。
19、資料庫特性:系統支援多資料庫連線和動態切換機制,支援分散式資料庫。猶如企業開發的一把利刃,跨資料庫應用和分散式支援從此無憂。
laravel框架 優點: 今年突然火起來的框架,個人感覺也還不錯(每句程式碼表達的意思很強烈,易懂)
Laravel的設計思想是很先進的,非常適合應用各種開發模式TDD, DDD和BDD,作為一個框架,它為你準備好了一切,composer是個php的未來,沒有composer,PHP肯定要走向沒落。
laravel最大的特點和優秀之處就是集合了php比較新的特性,以及各種各樣的設計模式,Ioc容器,依賴注入等。因此laravel是一個適合學習的框架,他和其他的框架思想有著極大的不同,這也要求你非常熟練php,基礎紮實。
如果你覺得laravel很困難 那麼原因只有一個 你php基礎不夠好。
通常覺得Laravel難學且無用的開發者中,只會PHP一門語言,或者說,沒有靜態編譯型語言(如C/C++/Java/Go等)使用經驗的開發者佔絕大多數。
路由和orm部分,和前端backbone之類的結合應該很契合,還是很不錯的,另外composer是個很好東西,關於效率問題,web程式的執行效率從來就不在框架,而在資料庫,框架那一點點消耗根本不會是什麼負擔。
laravel框架還是蠻不錯的,可以說非常全面,配合phpstorm開發還是很好的。