【问题标题】:Plugin managers in Zend Framework 2Zend Framework 2 中的插件管理器
【发布时间】:2014-03-19 18:05:08
【问题描述】:

我要编写自己的抽象工厂,类似于Zend\Log\LoggerAbstractServiceFactory。我注意到这个抽象工厂works with plugin managers,但我想知道插件管理器的确切用途是什么 - 无论是在一般情况下还是在这个特定示例中。 Zend\Log 命名空间包含多个插件管理器,例如WriterPluginManager 和ProcessorPluginManager,而Zend\Log\Writer 命名空间包含FormatterPluginManager 类。基本上我对这些插件管理器到底做了什么感到困惑。

我知道有几个用于控制器插件、视图助手等的插件管理器,我注意到插件管理器是一个专门的服务定位器,因为 Zend\ServiceManager\AbstractPluginManager 类 extends Zend\ServiceManager\ServiceManager。

所以我的问题是:插件管理器的目的是什么,无论是在一般情况下,还是在 Zend\Log 命名空间的具体示例中?我真的找不到任何关于此的文档。

【问题讨论】:

  • this 是我的开始,我从未回头!

标签: php zend-framework zend-framework2


【解决方案1】:

插件管理器是一种特殊的服务管理器,它返回特定类型的服务。他们定义了一个validatePlugin() 方法来检查服务是否确实是正确的类型。从您给出的示例中,WriterPluginManager 返回日志写入器,ProcessorPluginManager 不出所料地返回日志处理器。

只要您的抽象工厂返回实现正确接口的类,您就不必过多担心具体细节。

【讨论】:

    【解决方案2】:

    pluginManager 创建用于管理控制器插件。控制器插件在所有请求上执行,例如,如果你想检查授权或日志,最好的地方是控制器插件或任何任务应该对所有请求执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 2013-03-20
      • 1970-01-01
      • 2011-11-07
      相关资源
      最近更新 更多