Способ потребовать автозагрузки в одном файле на модуле Prestashop?

Я пытаюсь использовать набор библиотек с Composer для модуля Prestashop.

Мой текущий подход заключается в том, чтобы включить файл vendor/autoload.php mymodule.php каждый файл ( mymodule.php , controllers/front/foo.php , controllers/admin/bar.php и т. Д.).

Выполнение mymodule.php только поверх mymodule.php не является решением, я не вижу никакого крючка для выполнения задачи.

Есть ли лучший подход, чем копировать и вставлять один и тот же фрагмент поверх каждого файла PHP? Спасибо!

Возможно, переадресуйте все сценарии на один с помощью htaccess / rewrite, а затем в этом случае перед включением файлов preashop используйте autoload.

Я нашел способ сделать это!

Крючок actionDispatcher работал для меня с моделями, крючками, но не с контроллерами.

Похоже, что есть не документированный крюк, называемый moduleRoutes, который загружается перед любым контроллером.

Таким образом, я смог автоматически загружать все классы моего модуля:

 <?php if (!defined('_PS_VERSION_')) exit; //_PS_MODULE_DIR_ require_once __DIR__.'/vendor/autoload.php'; // Autoload here for the module definition class MyCustomModule extends Devnix\Prestablocks\Module { // My custom Prestashop framework (in experimental phase, https://github.com/devnix/prestablocks) // ... public function install() { return parent::install() && $this->registerHook('moduleRoutes'); // Register the hook } public function hookModuleRoutes() { require_once __DIR__.'/vendor/autoload.php'; // And the autoload here to make our Composer classes available everywhere! }