在了解一個新的php框架,首先關心的是yaf的性能,其次才是安全等等要素,php各種各樣的框架,性能也不一樣.目前使用的yii和ci性能還不錯,了解yaf之后,發(fā)現(xiàn)他們性能差的十萬八千里. 今天就來聊聊我yaf我認為的優(yōu)點和缺點。

 

1.1. Yaf的特點

 

在和其他用PHP寫的PHP框架來比的話, Yaf就是劍的第二層境界. 框架不在你手中, 而在PHP的”心”中.

目前PHP的框架層出不窮, 其中不乏很多優(yōu)秀的框架, 比如Zend官方支持的Zend Framework, Yii, ci等等. 但在這繁多的框架也就造成了公司內(nèi)多種框架的業(yè)務產(chǎn)品. 這些框架之間的不同, 也就導致了多種版本的類庫, 框架, 約定, 規(guī)范,,,,

那么, 為什么現(xiàn)在開源社區(qū)沒有一個成熟的用PHP擴展開發(fā)的框架呢?

用PHP擴展寫PHP框架的難點

  1. 難于開發(fā). 要完成一個PHP擴展的PHP框架, 需要作者有C背景, 有PHP擴展開發(fā)背景, 更要有PHP框架的設計經(jīng)驗.
  2. 目標用戶群小. 現(xiàn)在國內(nèi)很多中小型站都是使用虛擬主機, 并不能隨意的給PHP添加擴展, 所以這些大部分的中小型企業(yè), 個人博客的用戶就無法使用.
  3. 維護成本高. 要維護PHP擴展, 不僅僅需要精通于C的開發(fā)和調(diào)試, 更要精通于Zend API, 并且升級維護的周期也會很長.

那既然這樣, 為什么還要用PHP擴展來開發(fā)框架呢, 或者說, 這可行么?

用PHP擴展寫PHP框架的可行性

  1. 擴展邏輯相對比較穩(wěn)定, 一般不易變化. 把它們抽象出來, 用擴展實現(xiàn), 不會帶來額外的維護負擔.
  2. 框架邏輯復雜, 自檢耗時耗內(nèi)存都比較可觀, 而如果用擴展來實現(xiàn), 就能大幅減少這部分對資源的消耗.

 

1.2. Yaf的優(yōu)點

 

  1. 用C語言開發(fā)的PHP框架, 相比原生的PHP, 幾乎不會帶來額外的性能開銷.
  2. 所有的框架類, 不需要編譯, 在PHP啟動的時候加載, 并常駐內(nèi)存.
  3. 更短的內(nèi)存周轉(zhuǎn)周期, 提高內(nèi)存利用率, 降低內(nèi)存占用率.
  4. 靈巧的自動加載. 支持全局和局部兩種加載規(guī)則, 方便類庫共享.
  5. 高性能的視圖引擎.
  6. 高度靈活可擴展的框架, 支持自定義視圖引擎, 支持插件, 支持自定義路由等等.
  7. 內(nèi)建多種路由, 可以兼容目前常見的各種路由協(xié)議.
  8. 強大而又高度靈活的配置文件支持. 并支持緩存配置文件, 避免復雜的配置結(jié)構(gòu)帶來的性能損失.
  9. 在框架本身,對危險的操作習慣做了禁止.
  10. 更快的執(zhí)行速度, 更少的內(nèi)存占用.

其實, 來點簡單的,我認為yaf最大的有點是性能,這不是一般的快,性能比其他php框架快上十幾倍,和原生的php相差不是非常多。缺點也很明顯,畢竟是C的擴展,如果程序有漏洞,作者未及時更新,使用者在不懂C的情況下,只能看著網(wǎng)站受辱或者祈禱,或者關閉網(wǎng)站.