Symfony

Symfony

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:

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.

Udostępnij

Zarezerwuj konsultację (30 min) icon Zarezerwuj konsultację (30 min)