Maintenant que vous comprenez ce qu'est le gestionnaire de services, il ne devrait pas être compliqué pour vous de comprendre le concept des gestionnaires de plugins. Un gestionnaire de plugins est presque pareil qu'un gestionnaire de services sauf qu'il ne peut instancier que des services de type unique. Quel type de plugin un gestionnaire de plugin peut instancier en dur dans la classe du gestionnaire de plugins. (..?)
Pourquoi auriez-vous besoin d'une chose pareille ? En fait, dans ZF3, les gestionnaires de plugins sont largement utilisés car ils permettent d'instancier un plugin seulement quand cela est nécessaire (ceci réduit l'utilisation du processeur et de la mémoire). Il y a un gestionnaire de plugins séparé pour les :
Zend\Mvc\Controller\ControllerManager
)Zend\Mvc\Controller\PluginManager
)Zend\View\HelperPluginManager
)Zend\Form\FormElementManager\FormElementManagerV3Polyfill
)Zend\Filter\FilterPluginManager
)Zend\Validator\ValidatorPluginManager
)Le fait que chaque gestionnaire de plugins hérite de la classe de base Zend\ServiceManager\ServiceManager
permet à tous les gestionnaires de plugins d'avoir une configuration similaire. Par exemple, les contrôleurs
sont déclarés sous la clé controllers
dans le fichier module.config.php et cette clé peut avoir les
mêmes sous-clés : services, invokables, factories, abstract_factories, and aliases.
La clé view_helpers a la même structure pour la déclaration des aides de vue ainsi que la clé controller_plugins
utilisée pour la déclaration des plugins de contrôleur et ainsi de suite.