2015-06-23 3 views
3

Превосходная система переадресации работает, как и многие другие, используя схему имен файлов. Поэтому в основном я создам класс в/overrides/classes с тем же классом и именем файла другого в/classes, просто для упрощения. Ну, я должен изменить это (с последними версиями PrestaShop модуль может быть отменено, с предыдущим, мы не могли):Prestashop: как переопределить класс модуля, содержащийся в файле, который включает в себя другие классы?

include_once(dirname(__FILE__).'/MailAlert.php'); 

class MailAlerts extends Module{ 

[....] 

} 

я могу заменить его следующим образом:

class MailAlertsOverride extends MailAlerts{ 

[....] 

} 

Ну , он работает, файл и класс распознаются, но у меня проблемы с первоначально включенным классом MailAlert. Я не могу повторить его, но если я его не включу, модуль попросит об этом.

Я бы предпочел не изменять родительский класс. Есть ли способ решить эту проблему?

ответ

6

Хорошо, я был неправ: код выше просто работает :)

Для тех, кто не знает (это относительно новая функция PrestaShop), вы можете переопределить модуль в /override/modules/[modulename]/[modulename.php]

и используя название специального класса вы можете прочитать выше: modulenameOverride extends modulename

+0

Спасибо .. Я попробовал, и я застрял в названии классов. После того, как я переименовал свое собственное имя класса в modulenameOverride, все отлично работает – Arxeiss

Смежные вопросы