2010-10-15 114 views
0

我正在写一个zend应用程序,并尽量保持功能尽可能模块化。基本上我想将该文件夹放入应用程序并具有即时功能。Zend application.ini资源为不同的模块

Anywho;我试图从每个模块创建边栏链接。我使用的方法是使用引导程序:

以下是我的引导程序文件中的函数。我在另一个函数中设置了路线。

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" 

现在这里是q问题:如何使用单个资源获取布局资源?即没有指定我使用的每个新模块的模块名称?

+0

您应该创建一个答案并将其标记为正确的答案,而不是编辑问题本身。 – 2010-10-15 10:52:24

+0

好的。回答了答案。将在两天内标记为答案。 – 2010-10-15 12:00:53

回答

2

做出了回答新的岗位


使用Google的很多(如果这样做,成为“搜索”的替代品?)我碰到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文件夹一个config.ini文件的模块中(如/modules/news/config/config.ini),把你的模块特定的设置。

就是这样。太棒了!

相关问题