【发布时间】:2011-04-01 03:58:53
【问题描述】:
我在搞清楚如何拥有模块化目录结构以及加载要跨模块共享的资源时遇到了很多麻烦。即,
application
--- /forms
--- /models
--- /modules
------/module1/
---------/models
------/module2/
---------/models
现在,我要做的是从模块中加载 /application/forms 中的表单。我尝试过的所有内容都导致这些类没有被加载。
我试过了: 1) 让 Zend 尝试自动解决。 2) 在主引导程序中为应用程序路径和模块指定所有路径。即,
protected function _initAutoload()
{
$front = $this->bootstrap("frontController")->frontController;
$modules = $front->getControllerDirectory();
$default = $front->getDefaultModule();
$moduleloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Application',
'basePath' => APPLICATION_PATH
));
foreach (array_keys($modules) as $module) {
$moduleloader = new Zend_Application_Module_Autoloader(array(
'namespace' => ucfirst(strtolower($module)),
'basePath' => $front->getModuleDirectory($module))
);
}
}
3) 多次在我的桌子上砸我的头。
.. 是的,我意识到我不需要模块循环,因为我在每个模块目录中都有空白引导程序。
欢迎提出任何建议。谢谢!
【问题讨论】:
-
抱歉我的描述有误。我不包括表单,而是表单元素。这个认识给了我检查 Form_Element 是否真的映射到 Zend_Application_Module_Autoloader 的想法,但事实证明并非如此。通过将其添加到资源类型中,一切都开始工作了。
标签: php zend-framework