中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

ZF等常用php框架中存在的問(wèn)題

從Zend Framework v0.13版本開(kāi)始,我就開(kāi)始學(xué)習(xí)使用Zend Framework。當(dāng)時(shí)公司的一個(gè)項(xiàng)目也恰好用到了Zend Framework。到了0.6的版本之后就再?zèng)]有關(guān)注細(xì)節(jié)了。前些日子聽(tīng)說(shuō)Zend 公司將在5月份正式推出Zend Framework,今天特意叫同學(xué)下載下來(lái)測(cè)試。

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

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

  之前在chinaunix上有一個(gè)帖子,討論在php項(xiàng)目中使用對(duì)象和過(guò)程的優(yōu)勢(shì)和不足,討論的非常不錯(cuò)。有支持對(duì)象的,也有認(rèn)為非對(duì)象的開(kāi)發(fā)更加符合WEB開(kāi)發(fā)的特點(diǎn),有更好的性能。
  我個(gè)人是非常支持對(duì)象式開(kāi)發(fā)的,尤其在php5環(huán)境中(因?yàn)?a href=/itjie/phpjishu/ target=_blank class=infotextkey>php5的對(duì)象和php4的對(duì)象完全不是一回事,這個(gè)看看Zend 引擎就知道了)。但是帖子中說(shuō)到的幾點(diǎn)也很有道理:比如“OOP的形式卻無(wú)故要裝入很多無(wú)關(guān)的函數(shù)”。WEB開(kāi)發(fā)是非常強(qiáng)調(diào)性能的,而php是一種解釋性語(yǔ)言,如果include過(guò)多的代碼是很影響性能的。這個(gè)問(wèn)題在Zend Framework,Cackephp,F(xiàn)leaphp和我的框架phpbean中都存在。

  比如說(shuō)一個(gè)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'; 
    } 

?> 

    比如說(shuō)我們?cè)L問(wèn)index/index,那么testAction()和ShowAction()方法的內(nèi)容就完全是多余的。在實(shí)際開(kāi)發(fā)中按照這種思路,一般是一個(gè)功能模塊對(duì)應(yīng)一個(gè)controller,比如說(shuō)用戶就對(duì)應(yīng)一個(gè)userController,然后里面有登錄、退出、注冊(cè)、列表、詳細(xì)顯示等等多種方法。當(dāng)一個(gè)項(xiàng)目一大的時(shí)候一個(gè)controller可能就幾K到十幾K。那這樣的模式就非常的不好。


  在Java的struts中,就采用了完全不同的方式,他是一個(gè)action對(duì)應(yīng)一個(gè)文件。我覺(jué)得這是一個(gè)很好的參考方法。

  我覺(jué)得php5的話,使用面對(duì)對(duì)象更加何時(shí)。可以說(shuō)面對(duì)過(guò)程能實(shí)現(xiàn)的,面對(duì)對(duì)象都能實(shí)現(xiàn),而且可以實(shí)現(xiàn)的更好。但重要的一點(diǎn)是:采用面對(duì)對(duì)象的思維來(lái)使用面對(duì)對(duì)象,而不是用面對(duì)過(guò)程的思維來(lái)寫面對(duì)對(duì)象的程序! 

php技術(shù)ZF等常用php框架中存在的問(wèn)題,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 中文字幕高清 | h片在线看 | 国产一区二区三区视频 | aaaa网站| 精品网站999| 99视频免费看 | 中文字幕在线一 | 国产高清美女一级a毛片久久w | 久久免费香蕉视频 | 91亚洲精选 | 日韩一区二区三区视频在线播放 | 国产一区二区 | 亚洲一区中文字幕在线观看 | 99免费在线 | 精国产品一区二区三区四季综 | av手机在线播放 | 欧美一级黄带 | 亚洲电影第三页 | 大学生a级毛片免费视频 | 国产91丝袜在线熟 | 懂色av色香蕉一区二区蜜桃 | 中文字幕日韩欧美一区二区三区 | 日韩精品在线播放 | 日本成人免费观看 | 久久精品| 黄色骚片| 日韩一区精品 | 亚洲综合在线一区二区 | 中文字幕在线观看日韩 | 欧美不卡 | 亚洲视频在线观看一区二区三区 | 亚洲国产精品99久久久久久久久 | 亚洲激情在线观看 | 日韩视频在线播放 | 国产精品久久久久久久岛一牛影视 | 亚洲国产精品一区二区久久 | 国产精品99 | 午夜资源 | 亚洲精品乱码久久久久久按摩观 | 欧美久久久久久 | 国产一区二区在线免费观看 |