我试图为Sylius形成自己的工厂。
搜索Sylius组件我发现了怎么做。
这是我的工厂:
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;
}
}
我无法找到如何注入Sylius的FactoryInterface。
我执行了php app/console debug:container | grep factory
来搜索服务,但没有出现:(
有什么建议吗?
答案 0 :(得分:2)
据我所知,您在服务申报方面存在问题。我对吗?
对于您在上面提供的课程,您必须将其注册为服务,该服务将修饰默认课程。它是一个常规服务声明,在xml中具有额外的ngOnInit() {
if(!this.transaction) {
this.transaction = new Transaction();
}
}
属性。
decorates
您可以找到有关服务装饰的其他阅读in symfony documentation。但是,在Sylius文档中,您可以找到信息how to inject your custom factory to controller。