私が2つのサービスを持っているとしましょう:
get('my_first_service')
get('my_second_service')
私はこのようなことをしたい:
$this->get('my_first_service')->doSomething($this->get('my_second_service'));
これは、プロジェクトのあらゆる場所でアクティブにする必要がある初期化コードです。私が見る限り、いくつかのオプションがあります(両方のサービスは、vendor-dirから発生します(自分で記述していません)):
- 上記のコードを(いくつかの変更を加えて)app.phpおよび/またはapp_dev.phpに追加します
- 上記のコードをすべてのコントローラーアクションに追加します
- サービスを引数としてサービスを作成し、コンストラクターに上記のコードを追加します
最初のオプションは、app.phpファイルの編集をリンクしていないため、少し「珍しい」ように見えます。2番目のオプションは、数十のアクションに対してこれを行う必要があるため、非効率的です。3番目のアクションの方が良いようですが、コンストラクターを正しく実行するには、どこかからこのサービスを呼び出す必要がありますか?
可能性を逃しているような気がします...この種の初期化コードにはもっと良い場所があるはずですよね?