Definicja #
Symfony to open-source'owy framework PHP stworzony przez SensioLabs (Fabien Potencier), wydany w 2005 roku. Jest jednym z dwóch dominujących frameworków PHP obok Laravel, ceniony szczególnie w dużych, złożonych aplikacjach enterprise i projektach wymagających wysokiej jakości architektury.
Kluczowe cechy Symfony:
- Architektura komponentowa — Symfony składa się z ponad 50 niezależnych komponentów (HttpFoundation, Routing, DependencyInjection, Console, Form, Security, Validator), które mogą być używane oddzielnie nawet w projektach spoza Symfony
- Dependency Injection Container — rozbudowany kontener DI z autowiring, tagged services i dekoratorami
- Flex i Recipes — system automatycznej konfiguracji paczek przy instalacji (
composer requireautomatycznie konfiguruje bundle) - Długoterminowe wsparcie (LTS) — wersje LTS wspierane przez 4 lata; Symfony 7.x (PHP 8.2+)
- Doctrine ORM — standardowa integracja z Doctrine jako ORM dla relacyjnych baz danych
- Twig — silnik szablonów HTML z dziedziczeniem layoutów i obsługą bloków
- API Platform — framework REST/GraphQL API oparty na Symfony, standard dla nowoczesnych API PHP
Symfony jest fundamentem Drupala 8+ (CMS) i wielu innych projektów PHP. Laravel korzysta z komponentów Symfony (HttpFoundation, Routing, Console).
Zastosowania #
Symfony stosuje się do:
- Budowania aplikacji webowych enterprise — portale, systemy B2B, sklepy e-commerce (Sylius bazuje na Symfony)
- Tworzenia REST i GraphQL API za pomocą API Platform — standard w nowoczesnych projektach PHP
- Systemów CMS opartych na Drupalu — Drupal 8+ używa komponentów Symfony w swoim rdzeniu
- Projektów wymagających zaawansowanej architektury — DDD, CQRS, Event Sourcing w PHP z Symfony
- Narzędzi CLI i zadań w tle — Symfony Console, Messenger (kolejki RabbitMQ, SQS) do przetwarzania asynchronicznego
Ścieżka nauki #
Symfony wymaga dobrej znajomości PHP 8+ (typy, atrybuty, fibers). Przed nauką frameworka warto rozumieć OOP i podstawy HTTP.
Zacznij od:
- Oficjalna dokumentacja: symfony.com/doc — kurs "Getting Started" krok po kroku
- Instalacja przez Symfony CLI:
symfony new my_project - Routing, Kontrolery, Response — podstawy przepływu requestu
- Twig — szablony HTML, dziedziczenie layoutów, filtry i funkcje
- Doctrine ORM — encje, migracje (
doctrine:migrations:migrate), zapytania DQL
Następnie poznaj:
- Dependency Injection — autowiring, services.yaml, tagged services
- Symfony Messenger — kolejkowanie zadań, handlery, transporty (RabbitMQ, SQS, Doctrine)
- Security — authenticatory, voters, role hierarchy, firewall
- API Platform — budowanie REST API z automatycznym generowaniem dokumentacji OpenAPI
- Testowanie: PHPUnit z WebTestCase i ApiTestCase dla testów integracyjnych
FAQ #
- Czym różni się Symfony od Laravel?
- Laravel jest bardziej przyjazny dla początkujących — konwencja nad konfiguracją, Eloquent ORM (ActiveRecord), bogatszy ekosystem pluginów gotowych do użycia. Symfony oferuje więcej kontroli architektonicznej, lepszą modularność i jest preferowany w projektach enterprise wymagających złożonej architektury. Laravel dominuje na rynku freelancerskim, Symfony w korporacyjnym PHP.
- Czy Symfony jest trudny do nauczenia?
- Symfony ma wyższą krzywą uczenia się niż Laravel, szczególnie w obszarze konfiguracji DI i architekturze komponentów. Wymaga dobrego zrozumienia PHP OOP, wzorców projektowych i HTTP. Oficjalna dokumentacja Symfony jest jednak bardzo szczegółowa i stanowi doskonały punkt wyjścia.
- Czy Symfony jest popularny w Polsce?
- Tak — Symfony ma silną pozycję w polskim rynku PHP, szczególnie w projektach enterprise, agencjach webowych i organizacjach korzystających z Drupala. Laravel jest popularniejszy wśród freelancerów i startupów. Ofert pracy dla obu frameworków jest sporo.
- Ile zarabia Symfony Developer?
- PHP Developer ze Symfony w Polsce zarabia od 10 000 do 18 000 zł brutto na poziomie mid, senior od 18 000 do 28 000 zł. Znajomość API Platform i Doctrine ORM podnosi atrakcyjność kandydata na rynku pracy.