Podczas swojej kariery programistycznej pracowałem z wieloma róznymi frameworkami w PHP od autorskich po zenda, phalcona, kohane. Obecnie pracuję przy projekcie prowadzonym na Symfony2. Długo nie mogłem się przekonać bo wydawało mi się, że Symfony2 to ogromny framework i będę musiał spędzić dużo czasu na poznanie go. Mając doświadczenia z czytania dokumentacji innych frameworków i problemy, które tam napotykałem po prostu nie widziałem w tym sensu. Jednakże postanowiłem spróbować i od razu się zaskoczyłem.

Dokumentacja symfony jest inna niż wszystkie, można sobie bez problemu poradzić w postawieniu prostego projektu, nawet nie trzeba konfigurować serwera HTTP bo symfony bez problemu uruchomi sie na serwerze wbudowanym w PHP wpisujemy w konsoli php app/console server:start voila projekt działa. Dokumentacja jest podzielona na logiczne części odpowiadające komponentom(bundle), rzeczy, które się najczęsciej przydają umieszczone są w Cookbooku, a najlepsze praktyki w Symfony Best Practices.

Kolejna bardzo ważna cecha symfony to modułowość. Symfony jest zbiorem paczek, które mogą działać osobno, nic nie jest narzucone.

Aktywacja Bundle odbywa się przez ściągnięcie go np przez composera i dodanie 1 lini do app_kelner.php

Z uwagi na to, że Symfony jest bardzo popularny możemy znaleźć bardzo dużą ilość paczek mających wiele funkcjonalności często używanych na stornach www. Przykładem jest FOSUserBundle, który obsługuje wszystkie operacje związane z użytkownikiem, takie jak rejestracja, logowanie, przypominanie hasła, edycja profilu itp. Pod tym linkiem znajdziecie listę najczęsciej używanych bundle.

Symfony posiada bundle wspierające najnowsze technologie frontendowe takie jak gulp, sass, bower etc. wszystko można skonfigurowac tak, że poprzez odpalenie 1 komendy z konsoli lub nawet wykonanie composer install cały projekt nam się buduje wraz z assetami, stylami itp.

Symfony mocno stawia na OOP oraz Dependency Injection. Trzeba przestawić myslenie z „Singletonów” na „Serwisy”, stosować wzorce projektowe, SOLID. Dzięki temu nasz kod jest przejrzysty, łatwy w rozbudowie i nie przyprawia o atak serca developera, który po nas pracuje nad nim.

Jeśli twój projekt ma być utrzymywany przez lata i nie jest to prosta strona www, to na Twoim miejscu wziąłbym pod uwagę użycie Symfony2. Jeśli natomiast twoja appka to prosta strona firma to skorzystaj np z Silex-a albo innego microframeworka.