通过工厂方法调用服务

时间:2016-01-12 15:52:14

标签: php symfony

现在我可以通过以下方式从控制器调用服务:

$this -> get('myservice') -> doSomething();

但是我想根据工厂方法模式这样做:

ServiceFactory :: createMyservice() -> doSomething();

问题在于我无法使用第二种方法传递参数,它们会为空。

services.yml:

parameters:

services:
    myservice:
        class: AppBundle\Service\Myservice
        factory: [Appbundle\Factory\ServiceFactory, createMyservice]
        arguments:
            - "%kernel.root_dir%"

ServiceFactory.php:

<?php

namespace AppBundle\Factory;

use AppBundle\Service\MyService;

class ServiceFactory
{

    public static function createMyservice($rootDir)
    {
        var_dump($rootDir); // NULL
        $object = new Myservice($rootDir);
        return $object;
    }

}

出了什么问题?

0 个答案:

没有答案