2

私のチームは、非常に大規模な 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 つにバンドルの構成が含まれています)。 、残り - 他のすべてのもの)。

それで、私が求めていることは可能ですか?

4

1 に答える 1