Php 配置Zend Framework 2 AbstractPluginManager

Php 配置Zend Framework 2 AbstractPluginManager,php,zend-framework,zend-framework2,inversion-of-control,Php,Zend Framework,Zend Framework2,Inversion Of Control,我花了一点时间试图跟踪ZF2代码和文档,但似乎找不到一个解释,说明如何在Zend\Service\AbstractPluginManager实例已注册为服务侦听器的服务管理器时,使用全局配置来扩展配置 我创建的类的概述: AssetManager\AssetFilterPluginManager:扩展AbstractPluginManager AssetManager\Service\AssetFilterManager工厂:一个扩展Zend\Mvc\Service\AbstractPlugin

我花了一点时间试图跟踪ZF2代码和文档,但似乎找不到一个解释,说明如何在Zend\Service\AbstractPluginManager实例已注册为服务侦听器的服务管理器时,使用全局配置来扩展配置

我创建的类的概述:

AssetManager\AssetFilterPluginManager:扩展AbstractPluginManager

AssetManager\Service\AssetFilterManager工厂:一个扩展Zend\Mvc\Service\AbstractPluginManager工厂的工厂,其const PLUGIN\u MANAGER\u类设置为AssetManager\AssetFilterManager工厂

AssetManager\AssetFilterProviderInterface:模块功能接口

在config/module.config.php中,我将服务侦听器配置如下:

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

在阅读了view helpers代码中这些选项的用法之后,这是我对配置布局的理解。查看服务侦听器选项中的config_key选项,似乎应该将配置传递给插件管理器来配置服务,但我无法确定在何处或是否会发生这种情况。也许我误解了实现


我的目标是一个可插入的服务管理器扩展,它的功能非常类似于Zend的内置控制器插件和视图帮助器管理器。如果有人比我更有使用这些功能的经验,我将非常感谢您的帮助

您不能在config/module.config.php中配置服务侦听器,服务侦听器选项是config/application.config.php的一部分。此配置在模块初始化之前读取。 参见工作示例。 必须在Module.php中配置服务侦听器

'service_manager' => array(
    'factories' => array(
        'AssetFilterManager' => 'AssetManager\Service\AssetFilterManagerFactory',
    ),
),