2017-10-05 3 views
1

Je veux étendre certaines classes de base et contrôleurs via un module mais je ne sais pas comment. Je peux le faire avec des substitutions, mais selon les développeurs ce n'est pas un bon moyen:Comment étendre les classes et les contrôleurs dans PrestaShop 1.7?

L'architecture héritée peut toujours être surchargée. Mais dans général, nous déconseillons de surcharger le code. Il est préférable de l'étendre.

Mais comment puis-je l'étendre? Y a-t-il un exemple de code?

Meilleures salutations

Répondre

0

Prestashop docs vous pouvez voir le override.

Mettre ur classe/modules/mon_module/override/cours ou contrôleur/modules/mon_module/override/contrôleurs/{avant ou admin}

Je l'utilise sur mes modules.

Un exemple de mon module, remplaçant une fonction frontController:

<?php 

class FrontController extends FrontControllerCore 
{ 
    protected function smartyOutputContent($content) 
    { 
     if (version_compare(_PS_VERSION_, '1.7', '<')) { 
      //do something 
     } else { 
      parent::smartyOutputContent($content); 
     } 
    } 
} 
+0

Je veux soumettre le module au marché PrestaShop. Donc, je ne suis pas autorisé à utiliser un override. :( –

+0

N'est-ce pas l'ancienne méthode d'écrasement? Tous les fichiers de modules/xx/override seront installés dans le répertoire override Et ou ne fonctionne que pour les fichiers hérités Si j'ai besoin de "surcharger" un fichier ps de symfony structure je dois "étendre" mais honnêtement je ne sais pas comment. –