Ahora que entendemos lo que es un administrador de servicios no debería ser difícil aprender el concepto de administrador de complementos. Un administrador de complementos es casi lo mismo que un administrador de servicios con la excepción de que solo puede instanciar servicios de un único tipo. Con este tipo de complemento un administrador de complementos se puede instanciar incrustado en el código dentro de la clase administradora de complementos.
¿Por qué necesitamos tal cosa? De hecho, en ZF3, el administrador de complementos se usa ampliamente porque ellos permiten instanciar un complemento solo cuando se necesita (esto reduce el uso de CPU y memoria). Existen administradores de complementos separados para:
Zend\Mvc\Controller\ControllerManager
)Zend\Mvc\Controller\PluginManager
)Zend\View\HelperPluginManager
)Zend\Form\FormElementManager\FormElementManagerV3Polyfill
)Zend\Filter\FilterPluginManager
)Zend\Validator\ValidatorPluginManager
)El hecho de que cada administrador de complementos herede desde la clase base
Zend\ServiceManager\ServiceManager
permite que los administradores de complementos
tengan una configuración similar. Por ejemplo, los controladores se registran dentro de la
llave controllers
en el archivo module.config.php y esta llave puede tener
las mismas subllaves: services, invokables, factories, abstract_factories
y aliases. La llave view_helpers que se usa para registrar los ayudantes de vistas
tiene la misma estructura, la llave controller_plugins se usa para registrar
complementos controladores, etc.