现在我可以通过以下方式从控制器调用服务:
$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;
}
}
出了什么问题?