ZendFramework2でライブラリに入ってるNavigationを使用する時の方法です。
外国人のブログですが、こちらを参考にしました。
http://arifinbinmatin.wordpress.com/2013/03/21/split-your-module-configuration-in-several-files-in-zf2/
目的
モジュール設定ファイル(module.config.php)にルータやナビゲーションなど、記述が増えていく可能性がある設定を分離して管理しやすくする為。
その他のcontrollersやview_managerも増えていくじゃないか!と思う方もいるかもしれませんが、そちらは追加するとしても1行程度なので分離する必要がないという考えです。
手順
・ルータの構成ファイルを分割
・ナビゲーションの構成ファイルを分割
・すべての構成ファイルをマージ
ルータの構成ファイルを分離
ルータ用の設定ファイルを作成
モジュール内のconfigディレクトリのに新規で「module.config.routes.php」というファイルを作成します。
├─module │ ├─Application │ │ │ └─config │ │ │ ├─module.config.php │ │ │ └─module.config.routes.php │ └─Test │ └─config │ ├─module.config.php │ └─module.config.routes.php
ルータの設定を分離
module.config.phpに記述されているrouter部分を、新規で作成した「module.config.routes.php」ファイルに記述します。
なお、分離したらmodule.config.phpにはrouterの設定は記述しないようにしてください。
return array( 'router' => array( 'routes' => array( //ルータ設定 ), ), );
ナビゲーションの構成ファイルを分離
ナビゲーション用の設定ファイルを作成
モジュール内のconfigディレクトリのに新規で「module.config.navigation.php」というファイルを作成します。
├─module │ ├─Application │ │ │ └─config │ │ │ ├─module.config.php │ │ │ ├─module.config.routes.php │ │ │ └─module.config.navigation.php │ └─Test │ └─config │ ├─module.config.php │ ├─module.config.routes.php │ └─module.config.navigation.php
ルータの設定を分離
ナビゲーションの設定がmodule.config.phpに記述されている場合は、navigation部分を、新規で作成した「module.config.navigation.php」ファイルに記述します。
module.config.phpに元から記述されていなかったら、そのまま「module.config.navigation.php」に新規で記述するようにしてください。
なお、分離したらmodule.config.phpにはnavigationの設定は記述しないようにしてください。
ナビゲーションの記述方法については、ZF2リファレンスを参照してください。
http://framework.zend.com/manual/2.0/en/modules/zend.view.helpers.navigation.html#navigation-setup-used-in-examples
return array( 'navigation' => array( 'default' => array( //ナビゲーション設定 ), ), );
すべての構成ファイルをマージ
Module.phpのgetConfig()で、モジュール設定ファイルと新規で追加したルータ設定、ナビゲーション設定ファイルをマージさせて反映させます。
public function getConfig() { $config = array(); $configFiles = array( __DIR__ . '/config/module.config.php', __DIR__ . '/config/module.config.routes.php', // ルータ __DIR__ . '/config/module.config.navigations.php', // ナビゲーション ); // モジュール設定ファイルをマージさせる foreach ($configFiles as $configFile) { $config = \Zend\Stdlib\ArrayUtils::merge($config, include $configFile); } return $config; }
参考サイト
Split your module configuration in several files in ZF2 | ArifinBinMatin
Navigation Helpers — Zend Framework 2 2.0.7 documentation – Zend Framework
この記事を見た人にオススメの記事
1件コメントがあります。
[…] ZendFramework2でNavigationを効率良く利用する方法 (2013年 5月 13日) […]
コメントする