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

8 thoughts on “缺乏 Model 支援的 Zend Framework

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

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

    我目前是這樣用的

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

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

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

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

Leave a Comment