Jump to content

Développement de module : des règles sur ce qui est interdit / autorisé ?


Recommended Posts

Bonjour à tous, 

 

Voilà, je l'ai bien mauvaise aujourd'hui.

Mon nouveau module vient de se faire refuser pour la 4eme fois.

 

Première fois : le module propose implémente une surcharge de Db. Refusée car vous comprenez, les surcharges de Db ça ne se fait pas. Bon ...

 

Deuxième fois : j'ai surchargé Product à la place, ce que je ne voulais pas faire initialement car la méthode est longue, qu'elle a changé souvent, qu'il n'y a pas de hook etc. Refusé car la surcharge est trop longue. Re-bon ....

 

Troisième et quatrième fois : j'ai réussi à expliquer que la surcharge est longue car elle doit fonctionner sur toutes les versions de PS et que la méthode native a changé 10 fois (et donc tous ces changements sont dans la surcharge, ben oui). Mais refusée de nouveau car le code copié dans prestashop (cette surcharge de 200 lignes ce n'est que pour ajouter 3 lignes au milieu) doit être mieux sécurisé ! Autrement dit, on me demande de sécuriser le code de PrestaShop oui oui.

 

Sympa non ?

 

 

 

  • Like 2
Link to comment
Share on other sites

Et oui, je comprends.

 

Ma surcharge avait uniquement pour but de modifier une clause d'un select dans une méthode assez longue de la classe Products. Or cette clause se trouve au milieu de la méthode et je n'avais absolument pas envie de recopier toute la méthode dans une surcharge pour simplement ajouter 3 lignes au milieu. En effet cette pratique est selon moi mauvaise car cette méthode surchargée ne pourra plus bénéficier des mises à jour de PrestaShop.

 

Comme cette clause est tout a fait identifiable, j'avais décidé dans un premier temps de surcharger la classe Db pour que la clause soit modifiée avant exécution de la requête. Dans Db, la surcharge pouvait être placée en début de méthode et je pouvais surtout faire un parent::methode() ensuite ce qui est largement plus satisfaisant côté qualité selon moi.

 

Mais bon... On ne surcharge pas cette classe.

Link to comment
Share on other sites

:D

Si je peux les éviter, j'évite aussi mais surtout parce que de toute manière chaque méthode ne pourra être surchargée que par un seul module. Et aussi à cause de /cache/class_index.php qui doit représenter 75% de mes tickets de support.

Link to comment
Share on other sites

Je comprends que la solution soit pénible pour toi mais je comprends leur refus, la classe Db est beaucoup trop centrale et sensible.

Par contre refusé ta solution de contournement (override de Product) là c'est un peu abusé, surtout si tu leur as expliqué la situation.

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...