Re: [Galette-devel] Les plugins peuvent-ils étendre le comportement de Galette

[ Thread Index | Date Index | More lists.galette.eu/devel Archives ]


Bonjour Johan,
J'ai déplacé les émissions d'événement de la route vers les Entity (et depuis le Repository dans le cas de Members pour émettre un evénément remove car pas de méthode remove depuis l'Entity).
J'ai testé avec PHP 7.1, 7.2 et 7.3, malheureusement c'est assez complexe d'installer PHP 7.4 sur mon poste et je n'ai donc pas pu tester pour cet environnement.
J'émets les événements :
Les plugins pourront donc les utiliser.
Tout est près dans la pull request https://github.com/galette/galette/pull/45
J'espère que cela te convient toujours et qu'on pourra le voir sortir dans une future version de Galette.
Bon weekend,
Nicolas.

Le lun. 17 févr. 2020 à 10:05, Johan Cwiklinski <johan@xxxxxxxx> a écrit :
Salut Nicolas,

Le 17/02/2020 à 08:33, Nicolas Béhier-Dévigne a écrit :
>   * Pour la migration vers Slim4, je ne pense pas que ce soit un gros
>     sujet, car il semble que seul l'appel au container sera à revoir
>     (l'event dispatcher est utilisé en injection de dépendance).

Oui, de toutes façons, il y a beaucoup d'autres choses qui bloquent, et
qui sont bien pires (au niveau de la DI justement) :/

>   * Pour la compatibilité PHP7.4, je vais vérifier ce soir. Pour le
>     moment je n'ai testé qu'en 7.2.

Super, merci :) Du coup, si ça passe en 7.2 et en 7.4, je vote pour
ignorer royalement l'avertissement de l'auteur :D

>   * Pour le déclenchement, au départ je souhaitais les déclencher depuis
>     la méthode store de l'entité Adhérent (je suis d'accord avec toi, ce
>     serait plus logique), mais sauf erreur de ma part, je n'ai plus
>     accès à l'application Slim à ce moment-là, c'est pour ça que j'ai
>     pris le raccourci en l'ajoutant à la route.. Je pense rester à cet
>     endroit sauf si tu m'indiques comment l'intégrer aux Entity.

Tu as raison, on a pas accès à l'app, ni à quoi que ce soit en fait
depuis les objets de Galette d'une manière générale.
Sans injection de dépendance (c'est assez récent dans l'histoire de
Galette), il était difficile de faire quelque chose de vraiment correct.
La plupart du temps, les dépendances sont passées dans les
constructeurs, mais c'est hyper contraignant...

J'ai commencé à bosser sur une branche d'intégration de PHP-DI (pimple,
utilisé par Slim3 n'étant plus maintenu) avec laquelle j'espère
améliorer un peu tout cela (il me semble qu'il y a une PR sur github si
ça t'intéresse).

Ce qu'il faut retenir, c'est surtout que je n'ai pas vraiment de
solution - en dehors de l'utilisation de globals - à l'heure actuelle :(

Donc, bon, je pense qu'une mauvaise solution technique sera toujours
mieux qu'une "mauvaise" logique : partons si ça te va sur le
déclenchement des évènements depuis l’objet adhérent (puis quand j'aurai
enfin la motivation pour créer une classe abstraite pour les entity, on
pourra généraliser plus facilement), et utilise un global (ce ne sera
pas la premier de cette classe de toutes façons) ;)

>   * Je ne suis pas très à l'aise avec les tests, d'autant plus qu'ils
>     devraient toucher les plugins et des événements asynchrones... Je
>     regarderai si j'arrive à en ajouter, mais je ne promets rien ;-)

Pas de soucis, ça, je m'en chargerai ;) C'était vraiment pour souligner
que depuis les routes, ce ne serait de toutes façons pas possible :)

> Je devrai pouvoir te faire un Pull-Request d'ici la fin de semaine..

Top, merci :)

> Bonne semaine,

Pareil !
--
Johan

--
Galette development - http://galette.eu/

List documentation: https://listengine.tuxfamily.org/lists.galette.eu/devel/



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/