Symfony je webový aplikační framework pro vývoj webových aplikací pro PHP vycházející z návrhového vzoru MVC. Celý framework je z velké části inspirován jinými webovými aplikačními frameworky jako Ruby on Rails, Django a Spring. Symfony je open-source, je vydáván pod MIT licencí a jeho vývoj je dále sponzorován francouzskou firmou Sensio Labs v Paříži.
Historie Framework původně vznikl pod názvem Sensio Framework jako odnož projektu Mojavi3-DEV, který měl v sobě integrován ORM vrstvu Propel.
Webová stránka projektu byla spuštěna 18. listopadu 2005.
Symfony 1.4.x byla poslední revizí 1. verze udržovanou do listopadu 2012.http://www.symfony-project.org/installation Symfony The Choice Matrix Nástupcem bylo Symfony 2 vydané v srpnu 2011. V listopadu 2015 byla vydána 3. verze frameworku. V listopadu 2017 byla vydána 4. verze. V listopadu 2019 byla vydána verze číslo 5. Doposud poslední verze číslo 7 vyšla v prosinci 2023.http://symfony.com/doc/current/contributing/community/releases.html
Open source komponenty frameworku
Ve svém základu využívá Symfony několik open source projektů: Propel a Doctrine, ORM vrstvy Creole a PDO, databázová abstrakční vrstva PRADO, PHP framework pro podporu lokalizace Pake, command-line interpret PHPUnit, unit tester Zend Framework, Zend_Logger a Zend_Cache jsou použity pro logování a cachování Mojavi, MVC framework Swift Mailer, odesílání emailů
Symfony také využívá některé své vlastní komponenty které jsou samostatně k dispozici na vlastním webu. Mezi ně patří například Symfony YAML, parser umožňující převádět YAML soubory do PHP polí a zpět.
Za použití pluginů může Symfony také podporovat některé další projekty jako: Prototype a jQuery, JavaScriptové frameworky script.aculo.us, JavaScriptová knihovna postavená na Prototype pro visuální efekty PHP Less, CSS parser postavený na projektu Less TinyMCE a CKeditor, jako WYSIWYG editory TCPDF, PHP knihovna pro generování PDF dokumentů
Od verze Symfony 1.2 není standardně implementován žádný JavaScriptový framework a volba je ponechána pouze na uživateli.
Struktura projektů v Symfony
Typický projekt v Symfony je rozdělen do mnoha podadresářů: app – konfigurace, šablony a případné překlady cache – cache zkompilovaných šablon dev – vývojové prostředí prod – produkční prostředí config – nastavení, většinou v YAML logs – logy Resources – zdroje views – šablony src – většina kódu MVC bundles – bundles jsou do jisté míry samostatné části webu zajišťující jeho funkčnost. Obsahuje podadresáře pojmenované podle jednotlivých bundlů, každý z nichž může mít vlastní podadresář pro controllery, adresář pro testy, atd. vendor – závislosti dodavatelů třetích stran web – adresář přístupný z internetu bundles – v tomto adresáři jsou bundles implementované v src, zde již s vlastními zdroji (obrázky, CSS…).
Každý projekt napsaný ve frameworku Symfony je rozdělen do jednotlivých aplikací (nejčastěji frontend a backend), ty se dále dělí na moduly a ty na jednotlivé akce.
S tím souvisí i hierarchie konfiguračních YAML souborů, kde jednotlivá nastavení se mohou postupně přepisovat s kaskádovou dědičností (nejnižší prioritu má nastavení projektu, nejvyšší nastavení konkrétního modulu).
Command-line
Trochu nezvykle na rozdíl od ostatních PHP frameworků vyžaduje Symfony přístup na command-line, což může být problém na sdílených web hostinzích. Vytváření projektů, aplikací, modulů, mnohá nastavení a údržba se provádí právě přes příkazový řádek.
Praktické použití Symfony je používán mnoha známými webovými stránkami po celém světě. Mezi ty nejznámější patří: Askeet, open source komunitní Q&A služba Del.icio.us, webová služba umožňující ukládání, sdílení a objevování záložek Dailymotion, částečně přešlo na Symfony a pokračuje i nadále
V Česku pak: Institut jazykového vzdělávání Katedra kybernetiky ZČU
Reference
Externí odkazy
Oficiální stránka
Kategorie:Webové aplikační frameworky Kategorie:Svobodný software naprogramovaný v PHP Kategorie:Software pod licencí MIT