私はこのexampleのようなコードを持っています。しかし、私はこれを拡張したい。 今、私のコードは次のようになります。カスタムタグにサービスを追加するチェーンsymfony
public function __construct(ObjectManager $om)
{
$this->om = $om;
}
そしてAppCustomTypePass
中:MainType
で
app.custom.chain:
class: AppBundle\Type\CustomChain
app.type.main:
class: AppBundle\Form\Type\MainType
autowire: true
tags:
- { name: app.custom.type, alias: main }
私は引数を持つ__construct
方法持って
public function process(ContainerBuilder $container)
{
if (!$container->has('app.custom.chain')) {
return;
}
$definition = $container->findDefinition('app.custom.chain');
$taggedServices = $container->findTaggedServiceIds('app.custom.type');
foreach ($taggedServices as $id => $tags) {
foreach ($tags as $attributes) {
$definition->addMethodCall(
'addCustomType',
[
new Reference($id),
$attributes['alias'],
]
);
}
}
}
をそして私はエラーを取得しています:
Type error: Too few arguments to function AppBundle\Form\Type\MainType::__construct(), 0 passed
AppCustomTypePass
クラスのこのクラスで引数を渡す方法はありますか?あなたがでタグ付けされたサービスのための引数を設定することができますコンパイラパスで
何をしようとしていますか?なぜサービス定義で 'MainType'引数を単純に定義したくないのですか? –
@JakubMatczakカスタムサービスタグを使用する必要がある –