我正在编写一个zend应用程序并尝试尽可能保持模块化功能。基本上我想将文件夹放入应用程序并具有即时功能。
Anywho;我正在尝试从每个模块创建侧边栏链接。我正在使用的方法是使用bootstrap:
这是我的bootstrap文件中的函数。我已将路线设置为另一个功能。
public function _initNavigation()
{
$navigation = new Zend_Navigation();
$navigation->addPages(
array(
array(
'label' => 'Link Name',
'route' => 'routeA',
'class' => 'heading'
),
array(
'label' => 'Link Name',
'route' => 'routeA',
'params'=>array('param' => 'value'),
),
array(
'label' => 'Link Name',
'params'=>array('param' => 'value'),
'route' => 'routeA'
)
)
);
$this->bootstrap('layout'); //this line giving error :(
$layout = $this->getResource('layout');
$view = $layout->getView();
$view->navigation($navigation);
我得到的错误是:
未找到资源匹配“布局”
经过一些敲击后我发现我必须将模块名称放在config / application.ini文件中的资源前面,例如:
moduleA.resources.layout.layoutPath = APPLICATION_PATH "/modules/moduleA/views/scripts"
现在问题是:如何使用单一资源获取布局资源?即,没有为我使用的每个新模块指定模块名称?
答案 0 :(得分:2)
回复新帖子
经过大量的谷歌搜索(什么时候成为'搜索'的替代品?)我遇到了Leonard Dronkers' "Zend Framework Module Config The Easy Way"。
基本上,将其添加到模块的引导程序文件
/**
* Load config.ini file for this module.
*/
protected function _initModuleConfig()
{
// load ini file
$iniOptions = new Zend_Config_Ini(dirname(__FILE__) . '/configs/config.ini');
// Set this bootstrap options
$this->setOptions($iniOptions->toArray());
}
将config.ini文件放在模块的config文件夹中(例如/modules/news/config/config.ini),然后将模块特定设置放在那里。
就是这样。奇妙!