2016-09-08 5 views
0

私は自分のFactory for Syliusフォームを作ろうとしています。Sylius - FactoryInterfaceを自分の工場に注入する方法

シリアスコンポーネントを検索すると、やり方がわかりました。私はSyliusのFactoryInterfaceを注入する方法を見つけることができません

class CommentFactory implements CommentFactoryInterface 
{ 
/** 
* @var FactoryInterface 
*/ 
private $factory; 

/** 
* @param FactoryInterface $factory 
*/ 
public function __construct(FactoryInterface $factory) 
{ 
    $this->factory = $factory; 
} 

/** 
* {@inheritDoc} 
*/ 
public function createNew() 
{ 
    return $this->factory->createNew(); 
} 

public function createWithPost($postId) 
{ 
    $comment = $this->createNew(); 
    $comment->setPost($postId); 

    return $comment; 
} 
} 

は、ここに私の工場です。

私は、サービスを検索するphp app/console debug:container | grep factoryを実行したが表示されていません:(

任意の提案を?

答えて

2

限り、私はあなたがサービスの宣言に問題が理解されるように。のために私の右?

アム上記で提供したクラスは、サービスとして登録する必要があります。サービスとして登録する必要があります。これは、標準のサービス宣言であり、xmlにdecorates属性を追加します。

<service id="app.custom_factory.comment" class="App\Factory\CommentFactory" decorates="app.factory.comment"> 
     <argument type="service" id="app.custom_factory.comment.inner" /> 
    </service> 

サービスの装飾についての追加情報はin symfony documentationです。しかし、シリウスの文書には、how to inject your custom factory to controllerという情報があります。

+0

明日はうまくやってみるとうまくいくと思います。ありがとうございますlchrusciel –

+0

完璧に動作します。ありがとう@lchrusciel –

関連する問題