Symfony Factory class



我想在Symfony 2应用程序中使用ResultFactory类作为服务:

我的Result工厂类将负责创建BaseResult实例。根据传递给get工厂方法的类型,ResultFactory将创建正确的ResultObject。

代码如下:

class ResultFactory
{
    protected $translator;
    public function __construct(Translator $translator) 
    { 
        $this->translator = $translator;
    } 
    public function get($type, $param)
    {
        $instance = null;
        switch ($type) {
            case 'Type1':
                $instance = new Type1Result($param);
                break;
            case 'Type2':
                $instance = new Type2Result($param);
                break;
        }
        return $instance;
    }
}
我的问题是:

我想在ResultObject中使用一个服务。我如何注入这个服务到我的ResultObject?

谢谢!

您没有在结果对象中使用服务。您的工厂正在生成结果对象。您可以在services中定义工厂服务。

result.factory:
    class: ResultFactory
    arguments: ["@translator"]

在控制器中你可以调用服务:

 $resultObject = $this->get('result_factory')->get($type, $param);

你也有核心的例子如何创建工厂服务使用symfony2在[文档](http://symfony.com/doc/current/components/dependency_injection/factories.html)

相关内容

最新更新