Тема 1.7 создание новых классов для модулей и контроллеров перекрытая

Тема 1.7 создание новых классов для модулей и контроллеров перекрытая

02.11.2017 09:06:09 Просмотров 43 Источник

Я начал с 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

TheDrot

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 (с правильным определением пространства имен, конечно), и они автоматически загружаются в любом месте, где используется ваш модуль (контроллеры модулей, модели, крючки и т. д.).

https://stackoverflow.com/questions/47068652/prestashop-1-7-create-new-classes-for-modules-and-overrided-controllers/47070776#comment99994735_47070776
Не могли бы Вы уточнить это немного подробнее?
https://stackoverflow.com/questions/47068652/prestashop-1-7-create-new-classes-for-modules-and-overrided-controllers/47070776#comment100174970_47070776
@toesslab добавил объяснение
https://stackoverflow.com/questions/47068652/prestashop-1-7-create-new-classes-for-modules-and-overrided-controllers/47070776#comment100182923_47070776
спасибо тебе за это
Закрыть X