3 февраля 2025 г.

Архитектура Shopware 6

 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. 🚀

Комментариев нет:

Отправить комментарий

Как посмотреть список сервис-провайдеров в Laravel?

 ✅ Просмотр config/app.php Откройте файл config/app.php и найдите секцию 'providers'  ✅  Использовать Artisan-команду Запустите ком...