変数を全てのテンプレートへ注入する(グローバル値)¶
使用している全てのテンプレートからアクセスできる変数が必要なときもあります。これは、 app/config/config.yml ファイルの内部で指定することで可能です。
# app/config/config.yml
twig:
# ...
globals:
ga_tracking: UA-xxxxx-x
これで、 ga_tracking の変数が全ての Twig のテンプレートで使用可能になりました。
<p>Our google tracking code is: {{ ga_tracking }} </p>
とても簡単でした。ビルトインシステム サービスのパラメータ化 のアドバンテージを受けることもできます。そうすれば、値を孤立化できますし、また、再利用もできるようになります。
; app/config/parameters.ini
[parameters]
ga_tracking: UA-xxxxx-x
# app/config/config.yml
twig:
globals:
ga_tracking: %ga_tracking%
前と全く同じ変数が使用可能になりました。
さらに複雑なグローバル値¶
使用したいグローバル値がより複雑だった際には(例えばオブジェクト)、上記の方法を使用することはできません。代わりに、 Twig Extension を作成し、グローバル値を getGlobals メソッドのエントリの1つとして返す必要があります。