Теперь, когда вы понимаете, что такое менеджер сервисов, понятие менеджеров плагинов не должно вызывать трудностей. Менеджер плагинов - почти то же самое, что и менеджер сервисов, но он может инстанцировать сервисы только одного типа. Какого - жестко закодировано в классе менеджера плагинов.
Зачем это может понадобиться? На самом деле, менеджеры плагинов широко используются в ZF3, так как они позволяют инстанцировать плагины только тогда, когда кто-то обращается к плагину (что экономит процессорное время и память). Существуют отдельные менеджеры плагинов для:
Zend\Mvc\Controller\ControllerManager
)Zend\Mvc\Controller\PluginManager
)Zend\View\HelperPluginManager
)Zend\Form\FormElementManager\FormElementManagerV3Polyfill
) Zend\Filter\FilterPluginManager
)Zend\Validator\ValidatorPluginManager
)Так как любой менеджер плагинов наследуется от базового класса Zend\ServiceManager\ServiceManager
,
все менеджеры плагинов могут иметь схожую конфигурацию. Например, контроллеры регистрируются под
ключом controllers
в файле module.config.php, и у этого ключа могут быть те же подключи:
services, invokables, factories, abstract_factories, и aliases. Эту же структуру
имеет ключ view_helpers, используемый для регистрации помощников представлений, и ключ controller_plugins,
используемый для регистрации плагинов контроллера, и так далее.