【问题标题】:Zend Framework 2 - Setting serviceLocator in HydratorPluginManager not workingZend Framework 2 - 在 HydratorPluginManager 中设置 serviceLocator 不起作用
【发布时间】:2014-05-26 13:43:45
【问题描述】:

我正在使用HydratorPluginManager (Zend\Stdlib\Hydrator\HydratorPluginManager) 在一个地方管理我的水合器,并让经理负责验证我的水合器(这意味着检查我的水合器是否正确实施了@987654322 @)。

我有一些使用这样的工厂创建的保湿剂:

'service_manager' => array(
    'factories' => array(
        'My\Hydrators\SomeHydrator' => 'My\Hydrators\SomeHydratorFactory'
    )
)

在我的配置文件中注册工厂后,这些水合器在我的ServiceManager 中使用$serviceManager->get($name) 没有任何问题。现在我想将我的ServiceManager 连接到我的HydratorManager 以便如果我要求使用某种保湿剂:

$hydratorPluginManager->get($name)

其中$name 是用于注册的别名。所以在这个例子中它会是:

$hydratorPluginManager->get('My\Hydrators\SomeHydrator');

我的想法是,如果我像这样连接我的ServiceManager

$hydratorPluginManager->setServiceLocator($serviceManager)

它应该工作。但它没有,我很困惑为什么这不起作用......

我错过了什么吗?

【问题讨论】:

    标签: php zend-framework2 service-locator


    【解决方案1】:

    您可以直接将水合器放在插件管理器中。 hydrator 插件管理器的配置方式与服务管理器(可调用、工厂等)相同,只是配置键不同,hydrators 而不是service_manager

    您只需将您的工厂从service_manager 移动到hydrators ...

    'hydrators' => array(
        'factories' => array(
            'My\Hydrators\SomeHydrator' => 'My\Hydrators\SomeHydratorFactory'
        )
    ),
    

    【讨论】:

      猜你喜欢
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多