缺乏 Model 支援的 Zend Framework

Zend Framework 前陣子釋出 1.5.0 正式版了,與 1.5.0-RC 系列沒有太大差別,所以沒支援的還是得自己想辦法。

Controller 的部份,Zend_Controller 沒什麼問題,最基本的配置方式都已經摸熟了,也覺得算是還蠻好用的。

View 的部份,Zend_View 畢竟是 PHP 語法,看起來就不太討喜,加上我們是使用 Google cTemplate,其實以目前狀況算是還不錯,要另外再學一套的話要先考慮好處夠不夠足以換掉。far 最近在研究這方面,而我則是想使用 Smarty。但不管是哪種方案,View 的部份看起來沒什麼問題。

真正的問題在 Model,你可以在 Zend Framework 的文件裡面看到 “models” 的目錄配置 (像是在 Using a Conventional Modular Directory Structure 裡),但實際上 trace code 發現沒有對 model 支援。如果你自己寫了一個 Model 放到 models 裡,也沒有很方便的方法讓 Controller 裡的 code 使用,目前我想到的 dirty work 是 require_once(dirname(__FILE__) . '/../models/UserModel.php')

有誰用 ZF 開發有遇到同樣問題的嗎?

6 Responses to “缺乏 Model 支援的 Zend Framework”


  1. 1 ini_set

    看 tutorial 的作法是從 index.php 裡作 ini_set(’include_path’)

  2. 2 Gea-Suan Lin

    ini_set 嗎… :/

  3. 3 ronnywang

    在 index.php 裡面加入set_include_path(’./application/models/’.PATH_SEPARATOR. get_include_path() );

    之後然後再直接用 Zend_Loader::load(’CLASS NAME’);

    我目前是這樣用的

  4. 4 Gea-Suan Lin

    先照 ronnywang 的方法作了…

  5. 5 eddie

    路人經過 :)
    我目前的作法跟ronnywang一樣,也是把models加到include_path裡

    我比較懶得寫require又比較不在乎效率
    在bootstrap裡面加上:
    require_once ‘Zend/Loader.php’;
    Zend_Loader::registerAutoload();

    之後就連require或load都省下來了 :)

  6. 6 Gea-Suan Lin

    我是用 registerAutoload() 沒錯,PHP 端的效率現在沒有那麼在乎了…

Leave a Reply