2014-03-19 85 views
1

我要写自己的抽象工厂,类似于Zend\Log\LoggerAbstractServiceFactory。我注意到这个抽象工厂works with plugin managers,但我想知道插件管理器的目的是什么 - 无论是在一般情况下还是在这个特定的例子中。 Zend\Log名称空间包括多个插件管理器,如WriterPluginManagerProcessorPluginManager,而Zend\Log\Writer名称空间包括FormatterPluginManager类。基本上我很困惑这些插件管理员究竟做了什么。Zend Framework中的插件管理器2

我知道有对控制器插件,视图助手等插件的几个经理,我注意到一个插件管理器是一个专门的服务定位,因为Zend\ServiceManager\AbstractPluginManagerextendsZend\ServiceManager\ServiceManager

所以我的问题是:什么是插件管理员的目的,一般来说,在Zend\Log命名空间的具体例子?我无法真正找到任何有关这方面的文件。

+2

[this](http://samsonasik.wordpress.com/2014/01/29/zend-framework-2-getting-closer-with-pluginmanager/)是我的开始,我从未回头! –

回答

0

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

2

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

只要您的抽象工厂返回类实现正确的接口,您不应该过分担心这些细节。