3

で Twig 変数を設定できることはわかっていますがapp/config/config.yml、バンドル レベルごとに変数を設定したいと考えています (例: Bundle/Resources/config/??.yml)。

たとえば、ページのフッターにバンドル バージョン識別子を含めたいとします。twig config をバンドルに配置しようとしましたが、 services.ymlSymfony は構成を解析できませんでした。

どうすればこれを達成できますか?

4

1 に答える 1

1

あなたの例にバンドル固有の構成をどのように実装できるかわかりません。バンドル内の構成は、バンドル固有ではなく環境固有のメイン構成ファイルにインポートされる傾向があります。

ただし、あなたの例では、使用しているバンドルの名前を返す小枝拡張機能を作成するだけです。そうすれば、テンプレートの好きな場所で使用できます。リクエストからコントローラーの完全な名前のルートを取得し、 preg マッチングを使用してバンドル名を取得できます。以下のようなものが動作するはずです:

public function getBundleName()
{
    $pattern = "#([a-zA-Z]*)Bundle#";
    $matches = array();
    preg_match($pattern, $this->container->get('request')->get('_controller'), $matches);
    return $matches[1];
}

この例$this->containerでは、コンテナーのインスタンスになるようにコンストラクターで設定されています。コントローラーを取得するために別の方法を使用している場合は、それに応じて置き換えてください。

于 2013-03-21T12:10:03.127 に答える