私のチームは、非常に大規模な e コマース プロジェクトを開発しています。これまで、そのバンドルには 40 個ほどの構成パラメーターがありましたが、それらの最終的な関係がわからなかったり、適切に構造化する方法がなかったりしたため、最終的にapp/config.yml
ファイル内の標準パラメーター構造を使用することになりました。しかし、途中のどこかで、構成をセマンティック構成構造に移動することにしました。そのため、構成を検証し、クリーンな構造を持ち、バンドルの継承などによって簡単に拡張できます。
問題は、バンドル パラメーターを別のバンドル構成にインポートできないことです。
これが私が以前にできることです:
(...)
parameters:
company.bundle.email.user: user@domain.com
company.bundle.email.pass: @MyBeAUtiFULpA55w0Rd!
(...)
swiftmailer:
(...)
username: %company.bundle.email.user%
password: %company.bundle.email.pass%
これが私が今やろうとしていることですが、まったく機能しません。
(...)
company_bundle:
(...)
settings:
(...)
mailer:
(...)
user: user@domain.com
pass: @MyBeAUtiFULpA55w0Rd!
(...)
swiftmailer:
(...)
username: %company_bundle.settings.mailer.user%
password: %company_bundle.settings.mailer.pass%
(...)
もちろん、company_bundle
ノードにはセマンティック構成が含まれており、DIC によって処理され、 で定義されていCompany\Bundle\DependencyInjection\Configuration.php
ます。
今のところ、次のエラーだけです。
[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]
You have requested a non-existent parameter "company_bundle.settings.mailer.user".
問題は、私のバンドル パラメータを別のバンドル設定パラメータでアクセスできるようにする方法です ( Swiftmailer バンドルの前に常にバンドル設定を含めるように注意しました)。
注意: ここでは、Swiftmailer バンドルの構成をデモンストレーション目的でのみ示しています。他のバンドルでもバンドル パラメータを再利用できるようにしたいと考えています。
その背後にある動機は何ですか?
Symfony をよく知らない人に私たちの製品を設定してもらいたいのです。そのため、彼女は私たちのバンドル設定ファイルを開いてパラメータを微調整できなければなりません。これは、私たちが使用するいくつかの Symfony バンドルで使用されます。構成全体をその人に公開したくないので、すべてのアプリケーション構成にバンドルのセマンティック conf でアクセスできるようにしたい (既にすべてを個別の構成ファイルに分割しており、そのうちの 1 つにバンドルの構成が含まれています)。 、残り - 他のすべてのもの)。
それで、私が求めていることは可能ですか?