1. 程式人生 > >做一個專案用什麼框架?

做一個專案用什麼框架?

就拿我接觸的幾種框架舉例:

yaf框架優點:  這個框架特別nice ,速度快個人除了tp5久喜歡這個框架啦

  1. 用C語言開發的PHP框架, 相比原生的PHP, 幾乎不會帶來額外的效能開銷.
  2. 所有的框架類, 不需要編譯, 在PHP啟動的時候載入, 並常駐記憶體.
  3. 更短的記憶體週轉週期, 提高記憶體利用率, 降低記憶體佔用率.
  4. 靈巧的自動載入. 支援全域性和區域性兩種載入規則, 方便類庫共享.
  5. 高效能的檢視引擎.
  6. 高度靈活可擴充套件的框架, 支援自定義檢視引擎, 支援外掛, 支援自定義路由等等.
  7. 內建多種路由, 可以相容目前常見的各種路由協議.
  8. 強大而又高度靈活的配置檔案支援. 並支援快取配置檔案, 避免複雜的配置結構帶來的效能損失.
  9. 在框架本身,對危險的操作習慣做了禁止.
  10. 更快的執行速度, 更少的記憶體佔用.

其實, 來點簡單的,我認為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開發還是很好的。