1
私はSymfony2を使用しており、Symfony2/3依存性注入コンテナ内のサービス/ファクトリとして機能を使用したいと考えています。これは可能ですか?デフォルトでサポートされていない場合、これを許可するためにDICを拡張できますか?Symfony2/3依存性注入コンテナのサービスとしての機能の使用
2つのシナリオ:
# example service definition
services:
service_a:
function: MyNamespace\createGrobulator
arguments:
- "@logger"
- "@doctrine.orm.entity_manager"
service_b:
function: MyNamespace\createTitulator
arguments:
- "@service_a"
:オブジェクト
例の設定を作成する "工場" 機能を使用して機能
-
と実装例:
function createGrobulator(LoggerInterface $logger, $em) { // do something here return function ($x) use ($logger, $em) { return something; }; } function createTitulator($serviceA) { return new ObjectOfSomeType($serviceA); }
__invoke()
メソッドを使用してクラスをシミュレートすることは可能ですが、OOPへの不必要な遵守のように非常に冗長であり、PSRの推奨事項を使用すると、時々)非常に小さい機能。あなたのservices.ymlservices: service_a: function: MyNamespace\createGrobulator arguments: - "@logger" - "@doctrine.orm.entity_manager" calls: - [setMyService, ['@my.service']]
とあなたのサービスで中
:
彼らは完全にクラスの使用を避けたいと確信しています。 – Cerad
可能であれば@Ceradはい – contrebis