Skip to main content

On This Page

Symfony 7 and Sylius 2.0 Migration Guide for Developers

2 min read
Share

These articles are AI-generated summaries. Please check the original sources for full details.

Symfony 7 and Sylius 2.0: What Changes for Developers

Sylius 2.0 is built on Symfony 7, requiring a minimum of PHP 8.3 and the removal of all deprecated 6.x code. This modernization forces a transition from legacy patterns like jQuery and winzou state machines to Symfony UX and native Workflow components.

Why This Matters

The transition to Symfony 7 represents a shift to a ‘clean’ major version where ignored deprecation notices become fatal errors, rendering legacy configurations like security.encoders and SwiftMailer entirely unsupported. For developers, this technical reality means that while the resulting stack is more maintainable, the cost includes a mandatory rewrite of template overrides into Twig Hooks and the migration of state machine logic to native Symfony components.

Key Insights

  • PHP 8.3 Requirement: Sylius 2.0 mandates PHP 8.3, enabling native features like json_validate() and readonly classes released in 2023.
  • Native Workflow Component: Sylius 2.0 replaces the winzou/state-machine-bundle with the native Symfony Workflow component for order, payment, and shipping logic.
  • Symfony UX Migration: The platform removes jQuery dependencies in favor of Stimulus and Turbo for interactive frontend features.
  • API Platform 4: Migration to API Platform 4 introduces a new pattern of state providers and processors, replacing legacy data providers.
  • Twig Hooks System: A new extension point system replaces traditional template overrides in templates/bundles/, ensuring customizations survive core updates.

Practical Applications

  • System Migration: Transitioning order state logic to framework.workflows using the workflow:dump command for visual diagram generation. Pitfall: Attempting to use legacy service callbacks in guards instead of Symfony’s expression language.
  • Frontend Modernization: Implementing interactive features via Stimulus controllers and Turbo Frames to replace inline JS. Pitfall: Maintaining jQuery-dependent plugins which creates technical debt within the Symfony UX ecosystem.

References:

Continue reading

Next article

Inside the Kubernetes Scheduling Tournament: How Pods Win Node Placement

Related Content