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

新しい投稿に回答しました


たくさんのグーグルの後(それが「検索」の代わりになったのはいつですか?)、LeonardDronkersの「ZendFrameworkModule ConfigTheEasyWay」に出くわしました。

基本的に、これをモジュールのブートストラップファイルに追加します

/**
 * 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)に配置し、モジュール固有の設定をそこに配置します。

それでおしまい。素晴らしい!

于 2010-10-15T12:00:02.903 に答える