GoogleAPIキーや、jQueryなど各種ライブラリのバージョン情報など、固定された情報をひとまとめに定義して反映させる方法を紹介します。
私はこれから紹介する方法で進めていますが、他にもっと効率よく出来る方法がありましたら、教えてもらえると助かります。
設定ファイル
module.config.phpファイルに、オリジナルで設定したい情報を追加します。
オリジナルで設定する専用のconfigファイルを設けてもいいかもしれないですね! 専用のconfigファイルを作る方法は過去記事にて紹介しています。 http://piji.daiwa-hotcom.com/wordpress/?p=674 |
設定追加
私の場合は、view_managerの下にlibs_infoという情報を追加しました。
'view_manager' => array( 'display_not_found_reason' => true, 'display_exceptions' => true, 'doctype' => 'HTML5', .... ), 'libs_info' => array( 'google_search_api_key' => '1234567890', 'jquery' => '1.7.2', ),
Module設定
次に、設定ファイルで追加した情報を、ViewModelに渡してView側で受け取れるように定義します。
Module.phpファイルのonBootstrap()で下記の定義を追加します。
定義例
public function onBootstrap(MvcEvent $e)
{
$app = $e->getParam('application');
$config = $e->getApplication()->getServiceManager()->get('config');
$viewModel = $app->getMvcEvent()->getViewModel();
$viewModel->config = $config["libs_info"];
}
設定情報の取得
4行目で設定ファイルに記述されている情報を取得するようになっています。
$config = $e->getApplication()->getServiceManager()->get('config');
Viewへ渡す
7行目でオリジナルで設定したlibs_infoをView側で受け取れるようにしています。
$viewModel->config = $config["libs_info"];
ちょっと困った箇所
設定ファイルの情報をonBootstrap()内で取得する方法は、参考にしていたサイトでは
$e->getParam('config');
上記の記述で取得できると記載されていたのですが、これでは上手くできなかったので4行目のように取得するようにしました。
View側で受け取って出力
オリジナルで設定した情報がView側で受け取れるようになったので、受け取ってhtmlに出力します。
GoogleAPIKey:<?php echo $this->layout()->config["google_search_api_key"]; ?> jQueryバージョン:<?php echo $this->layout()->config["jquery"]; ?>
上手く設定が反映されていたら、ブラウザで下記のように表示になるはずです。
GoogleAPIKey:1234567890 jQueryバージョン:1.7.2
参考サイト
Access view variables in another view model – Rob Allen's DevNotes
Modules in ZF2 – Rob Allen's DevNotes
php – Zend Framework 2 module share variables between controllers onBootstrap – Stack Overflow
この記事を見た人にオススメの記事
0件コメントがあります。
コメントする