色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

ZF等常用php框架中存在的問題

從Zend Framework v0.13版本開始,我就開始學習使用Zend Framework。當時公司的一個項目也恰好用到了Zend Framework。到了0.6的版本之后就再沒有關注細節了。前些日子聽說Zend 公司將在5月份正式推出Zend Framework,今天特意叫同學下載下來測試。

  最新版本是0.93的,測試發現Zf框架越來越傻瓜式了。很多東西都直接封裝在ZF的library里面。你只要知道如何調用就OK拉。和之前的版本詳細的確有比較大的變化,也增加了比較多功能。
  首先,Zend.php不見了,取而代之的是一個Zend_load類,放在load.php里面。
  第二、庫類的加載更加方便了。之前的ZF要在子目錄下使用是比較麻煩的。現在可以直接在子目錄下使用,而且現在也可以不通過mod_rewrite來使用,可以通過http://path/to/site/controller/action來訪問,類似我在《回答phpCHINA上的幾個問題:URL映射 》談到的URL映射。
  第三、把試圖直接集成到了Controller里面,方便調用。不過有個不好的地方就是要按照ZF的要求來規范程序的目錄結構。
  另外還增加了很多功能,比如說訪問控制等等。總之,變化很大。今天晚上我也只是大概的看了下。

  對于ZF,cakephp等等框架,我覺得大家在學習的時候最好能明白框架的基本原理,所謂“萬變不離其中”。框架本身就是很簡單,完全沒有ZF等之類這樣復雜,它們只是把細節處理很完善,同時要做到通用,規范、功能強大,所以就復雜了。關于框架的基本原理,我推薦大家上phpit.NET上看一篇文章,關于如何使用php5搭建一個簡單的MVC框架的(在喜悅國際村上有翻譯),或者可以看看我的幾篇文章《php實現MVC開發得最簡單的方法》系列文章。

  之前在chinaunix上有一個帖子,討論在php項目中使用對象和過程的優勢和不足,討論的非常不錯。有支持對象的,也有認為非對象的開發更加符合WEB開發的特點,有更好的性能。
  我個人是非常支持對象式開發的,尤其在php5環境中(因為php5的對象和php4的對象完全不是一回事,這個看看Zend 引擎就知道了)。但是帖子中說到的幾點也很有道理:比如“OOP的形式卻無故要裝入很多無關的函數”。WEB開發是非常強調性能的,而php是一種解釋性語言,如果include過多的代碼是很影響性能的。這個問題在Zend Framework,Cackephp,Fleaphp和我的框架phpbean中都存在。

  比如說一個indexController,這里使用Zend Framework做例子。代碼如下:

<? 
class indexController extends Zend_Controller_Action { 

    function init(){ 
        $this->initView(); 
    } 

    function indexAction(){ 
        //echo 'index/index'; 
        $this->view->title='hello World!'; 
        $this->render(); 
    } 

    function testAction(){ 
        echo 'index/test'; 
    } 

    function showAction(){ 
        echo 'index/show'; 
    } 

?> 

    比如說我們訪問index/index,那么testAction()和ShowAction()方法的內容就完全是多余的。在實際開發中按照這種思路,一般是一個功能模塊對應一個controller,比如說用戶就對應一個userController,然后里面有登錄、退出、注冊、列表、詳細顯示等等多種方法。當一個項目一大的時候一個controller可能就幾K到十幾K。那這樣的模式就非常的不好。


  在Java的struts中,就采用了完全不同的方式,他是一個action對應一個文件。我覺得這是一個很好的參考方法。

  我覺得php5的話,使用面對對象更加何時。可以說面對過程能實現的,面對對象都能實現,而且可以實現的更好。但重要的一點是:采用面對對象的思維來使用面對對象,而不是用面對過程的思維來寫面對對象的程序! 

php技術ZF等常用php框架中存在的問題,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 嘉鱼县| 泰和县| 长丰县| 莱西市| 临潭县| 高平市| 南涧| 乡城县| 六枝特区| 新平| 星子县| 长乐市| 神木县| 道孚县| 嘉义县| 东兰县| 云和县| 绥江县| 大悟县| 阿合奇县| 青州市| 怀集县| 浦江县| 远安县| 怀化市| 潢川县| 朝阳区| 深泽县| 新平| 济源市| 汾西县| 吉安市| 永川市| 宣威市| 徐汇区| 云浮市| 宜昌市| 青河县| 慈利县| 宜川县| 德惠市|