Недавно я решил взглянуть на Sylius, так как мне нравится идея дружественного к разработчику проекта Symfony2.
Я пытался просмотреть различные статьи по документации, но мне не удалось найти ответ на очень фундаментальный вопрос, который у меня возник: Каков рекомендуемый способ начать разработку в новом интернет-магазине, который будет включать (по крайней мере) возможность реализовывать свои собственные шаблоны HTML-шаблонов и при этом иметь возможность легко обновлять Sylius до будущих версий?
Лучший подход, который мне удалось придумать, — это создать новый пакет (в моем случае он называется WebBundle
) который основан на умолчанию SyliusWebBundle
, Здесь проблема. Чтобы получить минимум возможностей, позволяющих Sylius использовать шаблоны в моем комплекте, а не шаблоны по умолчанию, мне пришлось пройти через множество обручей. Вот несколько вещей, которые я сделал до сих пор:
Controller
каталог от SyliusWebBundle
, Изменены возвращаемые значения для использования WebBundle
скорее, чем SyliusWebBundle
часть строки в аргументе $this->render()
, а также пространства имен классов.Resources/config/routing
каталог от SyliusWebBundle
к моей пачке. Изменено SyliusWebBundle
ссылки в файлах YAML, аналогичные приведенным выше.Добавлены новые разделы в app/config/config.yml
конкретно эта часть (предназначена для переопределения содержимого addCheckoutSection()
в Sylius\Bundle\CoreBundle\DependencyInjection\Configuration
):
sylius_core:
# ...
checkout:
steps:
security:
template: 'WebBundle:Frontend/Checkout/Step:security.html.twig'
addressing:
template: 'WebBundle:Frontend/Checkout/Step:addressing.html.twig'
shipping:
template: 'WebBundle:Frontend/Checkout/Step:shipping.html.twig'
payment:
template: 'WebBundle:Frontend/Checkout/Step:payment.html.twig'
finalize:
template: 'WebBundle:Frontend/Checkout/Step:finalize.html.twig'
У меня намного больше работы по изменению всех ссылок на контроллеры по умолчанию в файлах YAML в Resources/config/routing/frontend
каталог, но прежде чем я продолжу, Мне нужно знать, правильный ли это подход или я иду по неверному пути.
Моя цель — сделать магазин как можно более простым в обновлении с помощью новых выпусков Sylius, поэтому я бы хотел избежать изменения файлов базовой библиотеки и вместо этого выборочно переопределять функциональность, используя мои собственные пакеты, по мере необходимости.
Тем не менее, Sylius в настоящее время, кажется, еще не «ориентирован» на этот подход, если я что-то упустил.
Тот факт, что мне пришлось переопределить функциональность из более чем одного комплекта (CoreBundle
так же как WebBundle
В соответствии с приведенным выше разделом YAML), я сделал паузу с моим текущим подходом. Я надеюсь, что кто-то сможет направить меня в правильном направлении.
Вы можете переопределить все шаблоны в папке приложения (это часть Symfony и работает со всеми пакетами):
app/Resources/SyliusWebBundle/views/Frontend/Checkout/Step/
security.html.twig
addressing.html.twig
shipping.html.twig
payment.html.twig
finalize.html.twig
Других решений пока нет …