Symfony2で自分のバンドルを設定する必要があり
ます。それらを配置するのに最適な場所はどこですか?
どうすればそこからそれらを取得できますか?
でデフォルトの DB パラメータを使用PARAMETERS.INI
しましたが、コードで個人的に取得できる追加のパラメータが必要です。
Symfony2で自分のバンドルを設定する必要があり
ます。それらを配置するのに最適な場所はどこですか?
どうすればそこからそれらを取得できますか?
でデフォルトの DB パラメータを使用PARAMETERS.INI
しましたが、コードで個人的に取得できる追加のパラメータが必要です。
たとえば、パラメーターをバンドル内に保持する必要があります。
src/Company/SomeBundle/Resources/config/parameters.yml
必要な追加パラメーターを定義するには、config.yml ファイルで定義します。何かのようなもの:
# app/config/config.yml
parameters:
my_mailer.class: Acme\HelloBundle\Mailer
my_mailer.transport: sendmail
次に、doctrine や swiftmailer などの他のサービスを取得するのと同じように、コントローラー内など、サービス コンテナーが利用可能な場所ならどこでもそれらを取得できます。たとえば、コントローラーで次のようにします。
$transport = $this->get('my_mailer.transport');
必要に応じて、paramters.ini でこれらのパラメーターを定義できます。同じ結果が得られます。
バンドルクックブックエントリのセマンティック構成を公開する方法を参照してください。このアプローチの利点の 1 つは、構成を検証できることです。
parameters.ini ファイルで異なる部分を使用します。prod1 で始まるパラメーターを使用して prod1 環境を作成し、prod2 で同じパラメーターを使用することができます。
parameters.ini:
[parameters]
prod1_database_driver = pdo_mysql
prod1_database_host = 127.0.0.1
# ...
prod2_database_driver = pdo_mysql
prod2_database_host = localhost
どちらも prod.yml 構成を使用しますが、parameters.ini から読み取りたいものを上書きします。
config_prod1.yml:
imports:
- { resource: config_prod.yml }
// .. overwrite stuff here