2014-03-19 88 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毫不意外地返回日誌處理器。

只要您的抽象工廠返回類實現正確的接口,您不應該過分擔心這些細節。