Symfony je webový aplikační Framework. Ten se používá pro vývoj webových aplikací pro PHP, který vychází z návrhového vzoru MVC. Celý tento Framework je z velké části inspirován jinými webovými aplikačními frameworky, mezi které patří Ruby on Rails, Django nebo Spring. Symfony je opensourcový Framework, který je vydáván pod MIT licencí, jeho vývoj sponzoruje francouzská firma Sensio Labs v Paříži.

Cílem Symfony je urychlit tvorbu a údržbu webových aplikací a nahradit opakující se psaní podobného kódu. Funguje na operačních systémech Linux, FreeBSD, Mac OS a Microsoft Windows. Je potřeba webový server PHP5.

Vlastnosti Symfony

Symfony je jednoduchý na používání díky své programovací metodě založené na principu Ruby on Rails, díky čistému designu a jednoduché čitelnosti kódu. Symfony obsahuje Ajax helpery, pluginy a admin interface, čož zjednodušuje proces programování. Vývojáři se tak mohou zabývat spíše aplikační logikou, místo toho, aby plýtvali časem na psaní nekonečných XML konfiguračních souborů.

Symfony lze použít pro stavbu robustních aplikací pro velké společnosti, protože napomáhá vývojářům s testováním, opravou a dokumentací projektů. Zároveň jim dává plnou kontrolu nad konfigurací a kustomizací, ať už se jedná o strukturu adresáře nebo importované knihovny.

Symfony používá design Model-View-Controller, který odděluje business logiku od prezentační vrstvy.

Symfony nabízí širokou škálu vývojových prostředí a obsahuje několik nástrojů, které pomáhají automatizovat běžné úkoly softwarového inženýrství:

  • Nástroje na generování kódu pro tvorbu prototypů a administraci backendu na jedno kliknutí.
  • Vestavěný Framework na jednotkové a funkční testování, který umožňuje test-driven vývoj.
  • Panel na opravu chyb, který urychluje opravy kódu tím, že zobrazuje informace, které vývojář potřebuje na každé stránce, se kterou pracuje.
  • Interface příkazové řádky, který automatizuje deployment aplikace mezi dvěma servery.
  • Logovací nástroje, které dávají administrátorům kompletní přehled informací o aktivitách v aplikaci.

Výhody použití Symfony

  • Open Source. Symfony je distribuována pod open source licencí, díky tomu nejsou žádná omezení v použití, což umožňuje vývoj proprietárních řešení.
  • Mocný a flexibilní. Symfony je považován za jeden z nejmocnějších a nejflexibilnějších PHP frameworků.
  • Jeden z nejpoužívanějších. Symfony je jeden z nejpoužívanějších frameworků na světě. Díky tomu má velmi širokou komunitu uživatelů, která je zároveň velmi aktivní a umožňuje tak usnadnění vývoje. Mezi společnosti, které používají Symfony patří i Yahoo! Nebo Dailymotion.
  • Preventivní bezpečnostní opatření. Symfony integruje preventivní bezpečnostní opatření, která mají za úkol bojovat se slabými místy a útky XSS, CSRF a SQL injekcemi. Na rozdíl od domácího PHP vývoje, kde musíte neustále chránit každý dotaz. Symfony systematicky obsahuje tyto bezpečnostní mechanismy, aniž by bylo nutné je implementovat v každém jednotlivém případě.
  • Dokumentace. Dokumentace je komplexní a neustále aktualizovaná.
  • Spolehlivost kódu komponent. Komunita je velmi aktivní a dělá dobrou práci v oblasti kvality a vylepšení kódu a to především skrze pull requesty v Github projektu.
  • Pokrytí specifických potřeb. Symfony umožňuje řešení specifických problémů. Respektuje standardy PHP, ale navíc umožňuje i použití některých komponent bez nutného použití celého frameworku, což vede k vysoké míře flexibility.

Nevýhody použití Symfony

  • Náročná na učení. Symfony vyžaduje relativně hodně času na naučení.
  • Závislost na dalších technologiích. Pro kompletní řešení je potřeba zapojit i další technologie, jako je například YAML nebo Doctrine.
  • Nevhodný pro menší projekty. Symfony je relativně obsáhlý Framework a nemusí být příliš vhodný pro projekty menšího rozsahu.