• <menu id="w2i4a"></menu>
  • logo PHP框架/PHP IDE系列

    文檔首頁>>PHP框架/PHP IDE系列>>PHP框架yaf的優(yōu)點和缺點

    PHP框架yaf的優(yōu)點和缺點


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

     

    1.1. Yaf的特點

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

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

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

    用PHP擴展寫PHP框架的難點

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

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

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

    1. 擴展邏輯相對比較穩(wěn)定, 一般不易變化. 把它們抽象出來, 用擴展實現(xiàn), 不會帶來額外的維護(hù)負(fù)擔(dān).
    2. 框架邏輯復(fù)雜, 自檢耗時耗內(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. 強大而又高度靈活的配置文件支持. 并支持緩存配置文件, 避免復(fù)雜的配置結(jié)構(gòu)帶來的性能損失.
    9. 在框架本身,對危險的操作習(xí)慣做了禁止.
    10. 更快的執(zhí)行速度, 更少的內(nèi)存占用.

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

    轉(zhuǎn)載來自http://www.ttlsa.com/html/3369.html

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();