Ресурс Zend application.ini для разных модулей - PullRequest
0 голосов
/ 15 октября 2010

Я пишу Zend-приложение и стараюсь поддерживать функциональность как можно более модульной.В основном я хочу поместить папку в приложение и получить мгновенную функциональность.

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"

Теперь вот вопрос: как мне получитьмакет ресурса с использованием одного ресурса?т.е. без указания имени модуля для каждого нового модуля, который я использую?

1 Ответ

2 голосов
/ 15 октября 2010

Сделан ответ на новый пост


После МНОГО поиска в Google (когда ЭТО стало заменой для «поиска»?) Я натолкнулся на Леонард Дронкерс "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) и поместите туда специфичные для вашего модуля настройки.

Вот и все. Fantastic!

...