截至2009年3月,ZF的思想领袖似乎仍在就最佳组织方式进行讨论。作为Zend_Tool的一部分,预计在ZF v1.8中发布一个
脚手架生成器。目前它还在孵化器中,我上周试用了它,它能够工作,但是它的当前状态下没有生成很多组件。
从我看到的例子来看,它们似乎最好与其相互作用的模型分开管理(这是来自于《Zend Framework实战》的内容)。
/application
/modules/
/default
/controllers
/forms
ContactForm.php
LoginForm.php
RegisterForm.php
SupportForm.php
/models
Comment.php
User.php
Users.php
/views
/admin
/controllers
/views
然而,我也看到了在模型目录下面的以下结构。Matthew Weier O'Phinney展示了如何
将它们用于模型本身的验证:
/application
/modules/
/default
/controllers
/models
Comment.php
User.php
/Form
Comment.php
Login.php
Register.php
/views
/admin
/controllers
/views
为了让您的文件自动包含,请确保使用下划线模式命名您的类。
例如,当Zend_Loader看到:
class RegisterController extends Zend_Controller_Action
它在php的include_path中查找:
Zend/Controller/Action.php
同样地,如果我们假设上面的第一个结构,如果我们在我们的include_path中包含“default”模块:
$rootDir = dirname(dirname(__FILE__));
define('ROOT_DIR', $rootDir);
set_include_path(get_include_path()
. PATH_SEPARATOR . ROOT_DIR . '/library/'
. PATH_SEPARATOR . ROOT_DIR . '/application/modules/default/'
);
include 'Zend/Loader.php';
Zend_Loader::registerAutoload();
你给你的课程取名字:
Forms_ContactForm
Models_User
一些程序员选择将大部分文件放在库中,这样他们就不必添加额外的包含路径:
/library
/My
/Form
Contact.php
假设包含了库文件夹,上面的类将被命名为:
My_Form_Contact
祝你好运!-Matt