Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je commence à étudier sérieusement ZF2 et je bloque sur un point, comment overrider une class de Zend ou d'un module simplement ?
Les événements et la possibilité d'overrider la config réduit les chances d'avoir recours à l'override mais dans certain cas on n'a pas le choix.
Merci
Hors ligne
Salut, je ne vois pas trop en quoi ça pose problème tu étends la classe dont tu as besoin et tu l'utilise au lieu d'utiliser celle du ZF2.
Après si tu veux réécrire un composant MVC du ZF2 il suffit d'étendre se composant ou d'en créer un autre répondant à l'interface puis de remplacer la conf vers cette nouvelle classe et c'est gagné.
Hors ligne
Salut,
J'avais effectivement en tête l'override d'un composant MVC. Quand tu parle d'éditer la conf pour que la classe appelé soit celle que tu as étendu c'est à qu'elle niveau ? La conf du DI ?
Si tu as un exemple sous la main ça serai top !
Merci
Hors ligne
Oui c'est ça soit via le DI soit changer la classe auquel fait référence une entrée dans le service manager pour prendre en compte ta modification. Mais effectivement plus de précisions nous permettrait de t'aider d'avantage
Hors ligne
Pour donner un exemple j'ai besoin d'override la class Zend\ModuleManager\Listener\ConfigListener pour ajouter un getter de l'attribut skipConfig.
Si j'ai bien capté Orkin, il me suffit d'extends cette class et d'ajouter le getter. Ensuite dans la conf de mon module je dois spécifié au DI que Zend\ModuleManager\Listener\ConfigListener est maintenant MonNamespace\ModuleManager\Listener\ConfigListener.
Je n'ai pas trouvé dans la doc ce qui me permet de faire ça dans la conf du DI.
Une idée ?
Hors ligne
Normalement oui c'est ça mais je comprend pas pourquoi tu as besoin d'étendre ConfigListener. Tu peux très bien rajouter la conf que tu as besoin dans une entrée contenant le nom de ton module et la récupérer quand tu en as besoin.
Hors ligne
Bonjour,
Si tu veux surcharger la classe Zend\ModuleManager\Listener\ConfigListener, tu va devoir réécrire la fabrique du gestionnaire de module car elle construit explicitement la classe DefaultListenerAggregate (https://github.com/zendframework/zf2/bl … actory.php) qui instancie la classe ConfigListener.
Voici un exemple de surcharge de ConfigListener avec ce projet : https://github.com/blanchonvincent/zf2- … ster/ZFMLL .
Cdt,
Hors ligne