Тема 1.7 создание новых классов для модулей и контроллеров перекрытая
Я начал с Prestashop и у меня есть организационная проблема в моем коде. Я создал несколько модулей и новые таблицы. Я также переопределил контроллеры в папке myprestashop/override/, в которой я хочу использовать свои таблицы, поэтому мне нужно создать новые классы. Но я не знаю, где создавать классы в prestashop для такого же доступа в моих модулях, как и в моих переопределенных контроллерах.
Сейчас я вызываю мои классы create в моих модулях, в моих переопределенных контроллерах. Хотя я знаю, что это не правильное решение.
require_once _PS_MODULE_DIR_.'my_module/classes/MyNewClass.php'
У кого-нибудь есть ответ? Спасибо!!
Ответы - Тема 1.7 создание новых классов для модулей и контроллеров перекрытая / Prestashop 1.7 Create new classes for modules and overrided controllers

02.11.2017 11:34:33
Ну ваш путь является приемлемым решением, так как PrestaShop не имеет никаких возможностей автоматической загрузки для пользовательских классов.
Однако мне нравится использовать Composer в модулях и использовать его возможности автоматической загрузки для моих классов и любых библиотек, которые могут понадобиться модулю.
Обновление
Пример использования композитора в myexample
modules/
myexample/
classes/
mynamespace/
myexample.php
composer.json
myexample.php
require_once __DIR__ . '/vendor/autoload.php';
class MyExample extends Module
{
// module code
}
composer.json
Запустите {
"autoload": {
"psr-4": {
"mynamespace\\": "classes/mynamespace"
}
}
}
из папки модуля.
Теперь вы можете поместить классы в папку mynamespace (с правильным определением пространства имен, конечно), и они автоматически загружаются в любом месте, где используется ваш модуль (контроллеры модулей, модели, крючки и т. д.).