在module.config.php
中注册服务时
'service_manager' => [
'factories' => [
\Path\To\Your\Service\AService => \Path\To\Your\Service\Factory\AServiceFactory,
]
]
在ZF2(工厂实施MutableCreationOptionsInterface
)和ZF3(通过$container->get(\Path\To\Your\Service\AService::class, $options)
)中调用服务工厂时,我无法传递创建选项。
有人能告诉我如何将创建选项传递给服务吗?
答案 0 :(得分:1)
MutableOptions
目前仅适用于插件管理器实例;服务管理器没有实现它。这就是你看到差异的原因。
Références:https://github.com/zendframework/zend-servicemanager/issues/7
示例:https://samsonasik.wordpress.com/2014/08/14/zend-framework-2-using-creationoptions-in-pluginmanager/
补
我的解决方案是向AService类添加一个具有流畅模式的方法:
class AService
{
public function __construct(...)
{
//your code, you can inject variables from $container by AServiceFactory
}
public function setOptions($options)
{
// your setting from $options
...
// fluent pattern
return $this;
}
}
使用您的服务:
$container->get(\Path\To\Your\Service\Aservice::class)->setOptions($options);