Установка и настройка Sylius (Symfony)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Установка и настройка Sylius (Symfony)
Средняя
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Установка и настройка Sylius (Symfony)

Sylius устанавливается через Composer как Symfony-приложение. Есть два варианта: sylius/sylius-standard (полный стек с AdminUI и storefront) и отдельные компоненты для встраивания в существующее Symfony-приложение. Для нового интернет-магазина — всегда sylius-standard.

Системные требования

  • PHP 8.1+ (рекомендуется 8.2; поддержка 8.3 с Sylius 2.x)
  • Composer 2.x
  • PostgreSQL 13+ или MySQL 8.0+
  • Node.js 18+ (сборка ассетов)
  • Redis (Symfony Messenger, кэш, сессии)
  • Elasticsearch 7/8 (опционально, для поиска через bitbag/elasticsearch-plugin)

Создание проекта

composer create-project sylius/sylius-standard my_shop "~2.0"
cd my_shop

Sylius 2.0 — текущая стабильная версия. Для PHP 8.1 с минимальным стеком:

composer create-project sylius/sylius-standard my_shop "~1.13"

Настройка .env

# .env.local
APP_ENV=dev
APP_SECRET=your_32_char_secret_here

DATABASE_URL="postgresql://sylius:[email protected]:5432/sylius?serverVersion=16&charset=utf8"

MAILER_DSN=smtp://user:[email protected]:587?encryption=tls&auth_mode=login

MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages

# Для admin UI
SYLIUS_ADMIN_ROUTE_PREFIX=/admin

# Опционально
ELASTICSEARCH_URL=http://localhost:9200

Инициализация

# БД
bin/console doctrine:database:create
bin/console doctrine:migrations:migrate --no-interaction

# Загрузить начальные данные: страны, валюты, локали, типы доставки
bin/console sylius:install:setup

# Загрузить примеры данных (только для dev)
bin/console sylius:fixtures:load

sylius:install:setup — интерактивный мастер. Задаёт:

  • Локаль по умолчанию
  • Валюту по умолчанию
  • Данные администратора

Структура директорий

my_shop/
├── config/
│   ├── packages/
│   │   ├── sylius_core.yaml
│   │   ├── sylius_product.yaml
│   │   └── sylius_payment.yaml
│   └── routes/
│       ├── sylius_shop.yaml
│       └── sylius_admin.yaml
├── src/
│   ├── Entity/              # Кастомные сущности (extends Sylius)
│   │   ├── Product/
│   │   ├── Order/
│   │   └── Customer/
│   ├── Repository/
│   ├── Form/
│   └── EventListener/
├── templates/
│   └── bundles/
│       └── SyliusShopBundle/   # Переопределение шаблонов
└── migrations/

Настройка каналов через fixtures

Для воспроизводимой конфигурации — Suite fixtures:

# config/fixtures/channels.yaml
sylius_fixtures:
    suites:
        default:
            fixtures:
                channel:
                    options:
                        custom:
                            web_ru:
                                name: "Интернет-магазин"
                                code: "WEB_RU"
                                locales:
                                    - "ru_RU"
                                    - "en_US"
                                currencies:
                                    - "RUB"
                                countries:
                                    - "RU"
                                    - "BY"
                                    - "KZ"
                                hostname: "myshop.ru"
                                contact_email: "[email protected]"
                                enabled: true
                                default_locale: "ru_RU"
                                base_currency: "RUB"
                                theme_name: ~
                                tax_calculation_strategy: "order_items_based"
                                skipping_payment_step_allowed: false
                                skipping_shipping_step_allowed: false
                                account_verification_required: false
bin/console sylius:fixtures:load --suite=default

Сборка ассетов

# Установить npm зависимости
yarn install  # или npm install

# Dev
yarn dev

# Production
yarn build

Sylius 1.x использует Webpack Encore. Sylius 2.x — Vite или Webpack (зависит от версии).

Docker Compose

# docker-compose.yaml
version: "3.9"
services:
  php:
    image: php:8.2-fpm
    volumes:
      - .:/app
      - vendor:/app/vendor
    environment:
      - APP_ENV=prod

  nginx:
    image: nginx:alpine
    ports: ["80:80"]
    volumes:
      - .:/app
      - ./docker/nginx.conf:/etc/nginx/conf.d/default.conf

  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: sylius
      POSTGRES_USER: sylius
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes: [pgdata:/var/lib/postgresql/data]

  redis:
    image: redis:7-alpine

  worker:
    image: php:8.2-cli
    command: php /app/bin/console messenger:consume async catalog_promotions
    volumes:
      - .:/app
    depends_on: [postgres, redis]

volumes:
  pgdata:
  vendor:
# docker/nginx.conf
server {
    listen 80;
    root /app/public;

    location / {
        try_files $uri /index.php$is_args$args;
    }

    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
    }
}

Настройка платёжных методов

Платёжные методы добавляются через Admin UI (Конфигурация → Методы оплаты) или fixtures. Для работы нужны соответствующие плагины:

# Stripe
composer require sylius/stripe-plugin

# PayPal
composer require payum/paypal-express-checkout-nvp-php

# YooKassa (community)
composer require prometeytrading/sylius-yookassa-plugin

Настройка Symfony Messenger для очередей

# config/packages/messenger.yaml
framework:
    messenger:
        transports:
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                retry_strategy:
                    max_retries: 3
                    delay: 1000
                    multiplier: 2
            catalog_promotions:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                options:
                    stream: sylius_catalog_promotions

        routing:
            'Sylius\Bundle\CoreBundle\CatalogPromotion\Command\UpdateCatalogPromotionState': catalog_promotions
            'Sylius\Bundle\CoreBundle\CatalogPromotion\Command\ApplyCatalogPromotionsOnVariants': catalog_promotions

Checklist после установки

  • БД создана, миграции применены
  • Начальные данные загружены (sylius:install:setup)
  • Каналы настроены (URL, валюта, локали)
  • Shipping methods созданы
  • Tax categories и rates настроены
  • Payment methods добавлены и активны
  • Ассеты собраны (yarn build)
  • Symfony Messenger Worker запущен
  • Admin UI доступен (/admin)
  • Shop API отвечает (/api/v2/shop/products)