缺乏 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 開發有遇到同樣問題的嗎?

This entry was posted in Computer, Database, Murmuring, Network, Programming, Software, WWW. Bookmark the permalink.

8 Responses to 缺乏 Model 支援的 Zend Framework

  1. ini_set says:

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

  2. Gea-Suan Lin says:

    ini_set 嗎... :/

  3. ronnywang says:

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

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

    我目前是這樣用的

  4. Gea-Suan Lin says:

    先照 ronnywang 的方法作了...

  5. eddie says:

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

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

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

  6. Gea-Suan Lin says:

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

  7. weck says:

    推荐PHPTAL. PHPTAL用属性来定义模板语言的逻辑元素, 而不是像Smarty自定义了一套特殊格式的语法. 这样, 在向设计好的页面添加逻辑控制时, 就不会破坏当前页面的布局, 便于页面设计师和程序员之间的协作.

  8. Gea-Suan Lin says:

    用 Zend_View 其實還不錯。

Leave a Reply

Your email address will not be published. Required fields are marked *