Jump to content

Bonnes pratiques du développement de module


Recommended Posts

Bonjour à tous.

Je vous explique ma situation. Pour un client je dois installer un module qui installe une override pour le fichier Cart.php.

Problème, l'installation subit une erreur car j'ai dû, pour certaines volontés client, moi-même d$u créer une override et faire des modifications sur celui-ci.

En parcourant les forums j'ai compris que j'allais devoir mettre mes mains dedans et faire en sorte que tout marche ensemble.

Seulement je me pose donc une question. Un utilisateur prestashop (non développeur) qui achète 3 modules prestashop qui, manque de bol, doivent utiliser un override de la même class va subir le même problème que je subis actuellement. Et mis à part passer par un dev qui devra faire les modifications (et revenir en cas de maj) il n'a pas d'autres solutions.

Je me dirige donc vers vous pour savoir si il y a des bonnes pratiques existantent pour la création de module qui permettraient de ne pas tomber régulièrement dans ce genre de problème. Ou alors y a t'il un moyen de ne pas être dépendant des overrides pour créer ses modules.

(nb: je suis en prestashop 1.6).

D'avance merci.

Link to comment
Share on other sites

Bonjour,

Le monde n'est pas 100% parfait. Le système d'override n'est pas une invention de prestashop mais du développement. Comment tu veux que 2 modules override les mêmes lignes et les mêmes fonctionnalités?

Prestashop a améliorer son override de sorte que quand la classe est déjà overridée, alors, le système copie juste la fonction qu'on veut ajouter. Maintenant si c'est la même fonction/méthode qui est déjà overrider, c'est pas possible. D'ailleurs si ce sont les mêmes méthodes et les mêmes lignes dans les méthodes (donc la même fonctionnalités), c'est pas possible, ni pour prestashop ni pour n'importe quelle technologie.

Donc je pense ceci

  • Il y a des modules incompatibles et il faut trouver ce qui est compatibles. Et c'est pas un défaut de prestashop
  • En tant développeur, il faut faire des overrides du système seulement dans le cas de forces majeures. Tant qu'on peut contourner ou utiliser des hooks d'actions, il faut le faire
  • Pour le cas précis, si ce n'est pas la même fonctionnalité, vous pouvez dans le module supprimer l'override et aller vous-même ajouter dans la classe déjà overridée, en préservant ce qui a été déjà fait. 

Je ne sais pas si j'ai répondu à votre préoccupation.

  • Like 4
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...