0

我正在编写一个 zend 应用程序,并试图使功能尽可能模块化。基本上我想将文件夹放入应用程序并具有即时功能。

任何人;我正在尝试从每个模块创建侧边栏链接。我正在使用的方法是使用引导程序:

这是我的引导文件中的函数。我已经在另一个函数中设置了路线。

 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"

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

4

1 回答 1

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 文件放在模块的配置文件夹中(例如 /modules/news/config/config.ini),并将模块特定的设置放在那里。

就是这样。极好的!

于 2010-10-15T12:00:02.903 回答