Shopware 6 построен на Symfony и Vue.js, использует API-first подход и Event-driven архитектуру.
🔹 1. Основные компоненты
Компонент Описание
Core Бизнес-логика (работает на Symfony)
Administration Бэкенд-админка (на Vue.js)
Storefront Витрина магазина (Twig + SCSS)
Elasticsearch Поиск (опционально)
API REST API + GraphQL
🔹 2. Процесс загрузки (Request Flow)
1️⃣ Запуск через public/index.php (точка входа).
2️⃣ Фронт-контроллер (Symfony Kernel) инициализирует приложение.
3️⃣ Загрузка сервисов через Dependency Injection Container.
4️⃣ Обработка запроса с маршрутизацией через Symfony Routing.
5️⃣ Контроллер обрабатывает логику запроса.
6️⃣ Twig-шаблон формирует HTML-ответ для Storefront.
🔹 3. Где что лежит?
📂 Основные директории:
/shopware/
│── bin/ # CLI-команды (shopware CLI, Symfony Console)
/│── config/ # Конфигурации (YAML, services)
/│── custom/ # Плагины, темы
/│── public/ # Точка входа (index.php), статика
/│── src/ # Код Shopware (Core, Administration, Storefront)
/│── vendor/ # Composer-библиотеки
/│── var/ # Кэш, логи
/│── templates/ # Twig-шаблоны (если кастомные)
📂 Frontend (Storefront) файлы:
/src/Storefront/Resources/views/storefront/ # Основные шаблоны
/src/Storefront/Resources/views/layout/ # Лэйауты (header, footer)
/src/Storefront/Resources/views/page/ # Страницы (index, cart, product)
📂 Стартовый шаблон (Default Theme):
/src/Storefront/Resources/views/storefront/page/index.html.twig
Это главный шаблон главной страницы.
📂 Админка (Vue.js):
/src/Administration/Resources/app/administration/
🔹 4. Как кастомизировать шаблон?
1️⃣ Создать новую тему в custom/plugins/YourTheme/.
2️⃣ Наследовать шаблон (пример index.html.twig):
{% sw_extends '@Storefront/storefront/page/index.html.twig' %}
{% block page_content %}
{{ parent() }}
<div>Мой новый блок</div>
{% endblock %}
3️⃣ Активировать тему через админку или CLI:
php bin/console theme:compile
php bin/console cache:clear
📌 Итог:
Symfony отвечает за backend.
Twig используется в шаблонах.
Vue.js управляет админкой.
Темы лежат в custom/plugins/YourTheme/.
Маршруты и API работают через Symfony Routing + Controller.
Если нужна более глубокая кастомизация — можно писать плагины или расширять темы через Twig. 🚀
Комментариев нет:
Отправить комментарий