我花了一些时间试图通过ZF2代码和文档来追踪我的方式,但我似乎找不到使用全局配置扩展配置的方法的解释{{1当它已经被服务监听器注册为服务管理器时。
我创建的课程概述:
Zend\Service\AbstractPluginManager
:扩展AssetManager\AssetFilterPluginManager
AbstractPluginManager
:工厂延长AssetManager\Service\AssetFilterManagerFactory
,Zend\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的内置控制器插件和视图助手管理器非常相似。如果有任何人比我更有使用这些功能的经验,我将不胜感激。
答案 0 :(得分:0)
您无法在config / module.config.php中配置服务侦听器,service_listener_options是config / application.config.php的一部分。在模块初始化之前重新配置此配置。 请参阅工作示例here。 您必须在Module.php中配置服务侦听器