
Symfony jest frameworkiem PHP, bazującym na architekturze MVC (Model-View-Controller). Przekładając to na bardziej ludzki język, aplikacje opracowane w oparciu o takie podejście, charakteryzują się oddzielnym kodem odpowiedzialnym za logikę biznesową (tego, jak dane funkcje mają działać), oddzielnym kodem widoków (tego co użytkownik ma widzieć i jak ma wchodzić w interakcję z aplikacją) oraz kodem, który łączy dwa wspomniane wcześniej obszary.
Niewiele rozwiązań opartych na Symfony jest równie szybkich i elastycznych. Ten popularny framework PHP stworzono, skupiając się na wydajności działania. SensioLabs, twórca Symfony, od początku kładli nacisk na budowę serwisów i aplikacji tak, by dobudowywane funkcje nie były silnie związane z rdzeniem systemu.
Komponenty i bundle Symfony
Aplikacje tworzone w Symfony, wykorzystują szereg komponentów i bundli, które uzupełniają podstawowe funkcje frameworka. Są to pakiety, utrzymywane i aktualizowane dzięki bardzo rozbudowanej społeczności.
Stosując bundle, mamy zupełna elastyczność jeśli chodzi o tworzenie modułów, dokładnie odpowiadających wymaganiom klienta. Aby nakreślić wszechstronność modułów, przedstawiamy kilka przykładowych poniżej:
- HttpFoundation - obsługuje żądania HTTP i odpowiedzi, sesje, pliki cookie
- Routing - zarządza trasami (routes) i ich mapowaniem na kontrolery
- Form - kompletny system do tworzenia i obsługi formularzy
- Security - framework bezpieczeństwa obsługujący uwierzytelnianie i autoryzację
- Doctrine - popularne ORM do pracy z bazami danych
- Twig - silnik szablonów do generowania widoków
- EventDispatcher - system obsługi i emisji zdarzeń
- Console - narzędzie do tworzenia poleceń konsolowych
- Cache - system cache'owania
- Validator - komponent do walidacji danych
- Translation - wsparcie dla wielojęzyczności
- DependencyInjection - kontener wstrzykiwania zależności
- Serializer - serializacja i deserializacja obiektów
- Mailer - wysyłanie emaili
- Messenger - obsługa kolejek i asynchronicznych wiadomości
Każdy z tych komponentów może być używany niezależnie w innych projektach PHP, ale razem tworzą potężny framework full-stack. Dzięki częstym aktualizacjom, mamy pewność, że aplikacja budowane z pomocą Symfony są łatwo rozszerzalne zachowując przy tym swoją modularność. Wraz z aktualizacjami języka PHP, niemal natychmiast pojawiają się nowe wydania symfonowych bundli.
Zastosowanie Symfony w rozwiązaniach biznesowych
Symfony to framework, gotowy na obsługę dużego ruchu i działający bardzo wydajnie nawet przy dużym obciążeniu. Dzięki swojej budowie, wykorzystywany jest do budowy zarówny niewielkich dedykowanych aplikacji jak i złożonych systemów CRM, ERP i innych rozwiązań webowych.
Najlepszym dowodem na to, jak przemyślany jest to framwework, świadczy szereg narzędzi i aplikacji SaaS, które powstały na bazie Symfony. BlaBlaCar, Trivago, Dailymotion czy niektóre elementy backendu Spotify powstały właśnie w oparciu o komponenty Symfony.
Systemy OpenSource tworzone w oparciu o Symfony
Dzięki zaangażowaniu społeczności i naprawdę dużej społeczności developerów, na rynku pojawiło się wiele narzędzi CMS czy sklepów internetowych, wykorzystujących ten framework.
Są nimi m.in systemy CMS:
- Drupal,
- Sulu
A także sklepy internetowe
- Sylius
- Magento
Korzyści z używania Symfony
Za Symfony niewątpliwie przemawia wiele korzyści, które w perspektywie czasu okazują się bezcenne. Liczne aktualizacje bezpieczeństwa, elastyczność, łatwe dbanie o wysoką jakość kodu (kluczowe w długoterminowym utrzymywaniu projektów) to tylko niewielki przykład. Zastosowań biznesowych dla Symfony jest tyle, ile pomysłów.
Porównanie z innymi frameworkami
Na rynku, oprócz Symfony, istnieje szereg rozwiązań, stanowiących alternatywę. Są nimi m.in. Laravel, CodeIgniter, Yii.
Porównując Symfony z dowolną z wymienionych alternatyw, w każdym przypadku wygrywa on w zastosowaniu do dużych projektów enterprise, głównie z powodu swojej rozbudowanej i złożonej architektury, która pozwala na łatwe tworzenie integracji. Pomimo trudniejszej implementacji i wyższego progu wejścia dla programistów PHP, z czasem znacznie zyskuje na zaufaniu. Bardzo szczegółowa dokumentacja techniczna i stabilne wydania LTS to kolejne atuty Symfony.
Kiedy wybrać Symfony do swojego projektu?
Czyste Symfony będzie doskonałym wyborem dla dużych projektów enterprise, w których z czasem należy spodziewać się dużego obciążenia. Dodatkowo, jest to świetne rozwiązanie w przypadku, gdy potrzebne jest wdrożenie złożonej logiki biznesowej oraz gdy kluczowe jest zapewnienie długoterminowej stabilności.
Jeśli jednak planujesz stworzyć prostą stronę internetową, warto skorzystać z gotowych systemów CMS, takich jak bazujący na Symfony Sulu CMS.