Re: [Galette-devel] Les plugins peuvent-ils étendre le comportement de Galette |
[ Thread Index |
Date Index
| More lists.galette.eu/devel Archives
]
- To: devel@xxxxxxxxxxxxxxxx
- Subject: Re: [Galette-devel] Les plugins peuvent-ils étendre le comportement de Galette
- From: Johan Cwiklinski <johan@xxxxxxxx>
- Date: Sun, 16 Feb 2020 20:23:00 +0100
Hello,
Le 16/02/2020 à 18:02, Nicolas Béhier-Dévigne a écrit :
Bonjour Johan,
Je crois avoir réussi le test. J'ai proposé une solution :
https://github.com/nbehier/galette/commit/473b19cb04fa87a920d8235b3c2ff6d8158733ff
J'ai ajouté une méthode loadEventProviders au chargement des plugins,
qui charge tous les écouteurs d'événements des plugins s'ils possèdent
la classe PluginEventProvider.
J'ai ajouté deux événements member.add et member.update pour les tests.
J'ai créé un plugin avec le fichier lib/PluginEventProvider.php sur la
base de https://event.thephpleague.com/2.0/listeners/providers/ et je
récupère bien l'objet member et je peux en faire ce que je veux (sur la
capture ci-jointe, tu peux voir que j'ai ajouté un log avec le fullname
de l'adhérent).
Est-ce que cela te paraît aller dans le bon sens ?
Ouais, tout à fait ; ça me semble nickel :)
Je n'ai pas eu le loisir de regarder de très près, mais l'approche me
semble tout à faire correcte, et s'intègre sans trop de difficultés (le
diff reste très light, c'est plutôt bon !).
Juste une remarque au sujet de la lib, qui ne semble plus maintenue
(rien depuis 2 ans, alors que slmi4 existe depuis un moment maintenant).
Bon, dans l'absolu, ça ne fait qu'un problème de plus pour la migration
à Slim4, ce n'est as si grave.
En revanche, l'auteur indique clairement que sa lib n'est pas trop
prévue pour fonctionner en PHP 7... Je ne sais pas trop pourquoi, mais
il faut clairement que les libs supportent les mêmes versions de PHP que
Galette.
Ceci étant dit, je n'ai pas de solution alternative à proposer, si ça
fait le boulot, y compris en PHP 7.4, ce sera bon.
Enfin, juste une note technique ; je ne suis pas certain que les
évènements devraient être déclenchés depuis les routes. L'ajout d'un
adhérent pourrait venir d'un autre endroit (même si ce n'est pas le cas
actuellement), et dans ce cas les évènements ne seraient pas lancés.
Par ailleurs, quelques tests sur cette partie pourraient être
intéressants ; et ne sont pas possibles sur les routes :/
Merci en tous cas ! :)
++
--
Johan
--
Galette development - http://galette.eu/
List documentation: https://listengine.tuxfamily.org/lists.galette.eu/devel/