Interpreter.ru 🛡 В админку
Электронная коммерция • 30.09.2026 • рейтинг 6

Sylius 2.3: Новые возможности и улучшения для разработчиков и пользователей

Sylius 2.3: Новые возможности и улучшения для разработчиков и пользователей
Sylius 2.3 стал первым релизом, построенным на базе Symfony 8, и это не просто обновление зависимостей. В новой версии добавлен темный режим для административной панели, все основные сетки теперь настраиваются в PHP, а система акций адаптирована под реальные потребности многоканальных торговцев. Кроме того, API Payment Request вышел из экспериментального статуса.

Современная основа

Sylius 2.3 требует PHP 8.3 и поддерживает Symfony 8 наряду с версиями 6.4 и 7.4. Это позволяет пользователям сначала обновить Sylius, а затем перейти на Symfony 8 по своему графику. Одновременно расширился стек Doctrine: теперь поддерживаются DBAL 3.10 или 4.4, DoctrineBundle 2.18 или 3.2, ORM 2.20 или 3.6, а также Persistence 3.4 или 4.2. Sylius включает собственный тип DBAL ObjectType, чтобы токены платежей и полезные нагрузки запросов платежей продолжали работать на DBAL 4, где встроенный объектный тип был удален. Также поддерживается Symfony UX 3.0. Пять пакетов UX, используемых Sylius, теперь принимают версии ^2.36 || ^3.0. Это означает, что ваш проект останется на UX 2 до тех пор, пока вы не решите обновиться. Важно отметить, что twig_component.defaults становится обязательным в UX 3, и Sylius Standard уже включает его.

Удаление зависимостей

В новой версии Sylius удалены три зависимости:
  • ProxyManager заменен на нативные ленивые объекты PHP через symfony/var-exporter, что делает загрузку быстрее.
  • Gaufrette убран, так как Flysystem стал основным адаптером с версии 2.0.
  • behat/transliterator устарел в пользу symfony/string для генерации слагов.
  • Поддержка API Platform 5

    Sylius 2.3 также поддерживает API Platform 5, принимая версии ^4.3 и ^5.0, что позволяет пользователям выбирать время для обновления. API Platform 5 требует Symfony 7.4 или 8, в то время как проекты на Symfony 6.4 остаются на API Platform 4. API для магазина и администратора работают одинаково на обеих версиях, с одним изменением: полезная нагрузка с неправильным типом теперь возвращает 422 с нарушением ограничения вместо 400.

    Темный режим в административной панели

    Одним из самых ожидаемых улучшений стал темный режим в административной панели. Теперь пользователи могут переключаться между светлой и темной темами с помощью переключателя в навигационной панели. Этот режим учитывает настройки операционной системы и запоминает выбор, что позволяет пользователям, проводящим много времени в админке, не щуриться.

    Сетки, настроенные в PHP

    Около 35 основных сеток теперь реализованы как классы PHP вместо YAML. Это позволяет использовать автозаполнение, статический анализ и поддержку рефакторинга, что значительно упрощает работу с конфигурацией. Настройка в PHP стала стандартом в 2.3, а переход на 3.0 уже намечен. При этом старые YAML-сетки продолжают работать, что позволяет мигрировать поэтапно.

    Акции, адаптированные под реальные кампании

    Новая версия включает правила и действия для акций, адаптированные под многоканальные продажи. Теперь одна акция может иметь независимую конфигурацию для каждого канала. Например, "Купите 2 в магазине США, купите 5 в магазине Великобритании" теперь может быть одной акцией, а не двумя разными. Также добавлены шесть новых правил и два новых действия, которые активируются по желанию. Теперь можно отключить отслеживание использования акций и купонов, что полезно для постоянных кампаний и внутренних тестов. Введены новые операторы сравнения для количества в корзине и общей суммы товаров, что позволяет более гибко настраивать акции.

    Упрощение работы с аккаунтами

    В новой версии добавлена возможность повторной отправки письма для подтверждения аккаунта. Если пользователь пытается войти с правильными данными, но его аккаунт не подтвержден, он получает кнопку для повторной отправки прямо на странице входа. Также добавлены новые уровни доступа для администраторов, что позволяет более гибко управлять правами доступа.

    Платежи вне лаборатории

    API Payment Request больше не является экспериментальным. Все теги @experimental удалены из классов Payment Request, и теперь он покрыт обещанием обратной совместимости. Это означает, что разработчики плагинов могут строить на его основе без опасений о возможных изменениях. Также улучшена безопасность шифрования данных платежей, добавлены новые параметры, позволяющие ограничить типы данных, которые могут быть обработаны. Страница методов платежей была переработана, и теперь отображает логотипы шлюзов, коды и статусы в одном столбце.

    Улучшения в корзине и процессе оформления заказа

    В новой версии добавлены события, которые срабатывают после записи состояния корзины в базу данных. Это позволяет интегрировать корзину с платформами автоматизации маркетинга или системами рекомендаций. Логика добавления в корзину была вынесена в отдельный сервис, что упрощает ее использование в пользовательских контроллерах и компонентах.

    Опыт разработчика

    Конфигурация сервисов теперь осуществляется через PHP вместо XML в 23 пакетах, что упрощает навигацию по коду. Все ограничения валидации теперь объявляют явные именованные аргументы, что делает код более понятным. Также удален метод Request::get() в пользу явных пакетов запросов.

    Обновление до Sylius 2.3

    Основное требование для обновления — PHP 8.3 или новее, а также Symfony 6.4, 7.4 или 8. В новой версии изменилось поведение по умолчанию: sylius_core.order_by_identifier теперь равно false. Также добавлены новые устаревшие функции и методы, которые стоит учитывать при обновлении.

    Вклад сообщества

    Sylius 2.3 является результатом работы сообщества. Темный режим, конфигурация сеток в PHP и новые операторы сравнения были предложены внешними разработчиками. Особая благодарность выражается всем, кто принял участие в этом релизе, включая тех, кто работал над менее заметными, но важными аспектами, такими как CI и конфигурация пакетов.
    Источник:   Sylius Blog