配置Zend Framework 2 AbstractPluginManager

时间:2015-02-14 20:59:40

标签: php zend-framework zend-framework2 inversion-of-control

我花了一些时间试图通过ZF2代码和文档来追踪我的方式,但我似乎找不到使用全局配置扩展配置的方法的解释{{1当它已经被服务监听器注册为服务管理器时。

我创建的课程概述:

  • Zend\Service\AbstractPluginManager:扩展AssetManager\AssetFilterPluginManager

  • AbstractPluginManager:工厂延长AssetManager\Service\AssetFilterManagerFactoryZend\Mvc\Service\AbstractPluginManagerFactory设置为const PLUGIN_MANAGER_CLASS

  • "AssetManager\AssetFilterManagerFactory":模块功能界面

AssetManager\AssetFilterProviderInterface我已按如下方式配置服务监听器:

config/module.config.php

服务管理器配置包含'service_listener_options' => array( array( 'service_manager' => 'AssetFilterManager', 'config_key' => 'asset_filters', 'interface' => 'AssetManager\AssetFilterProviderInterface', 'method' => 'getAssetFilterConfig', ), ),

的定义
AssetFilterManager

阅读了视图助手代码中这些选项的用法,这是我对如何配置配置的理解。查看服务侦听器选项中的'service_manager' => array( 'factories' => array( 'AssetFilterManager' => 'AssetManager\Service\AssetFilterManagerFactory', ), ), 选项,似乎应该将配置传递给插件管理器以配置服务,但我无法确定这种情况发生在何处或是否发生。也许我误解了实施。

我的目标是一个可插拔的服务管理器扩展,其功能与Zend的内置控制器插件和视图助手管理器非常相似。如果有任何人比我更有使用这些功能的经验,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您无法在config / module.config.php中配置服务侦听器,service_listener_options是config / application.config.php的一部分。在模块初始化之前重新配置此配置。 请参阅工作示例here。 您必须在Module.php中配置服务侦听器