Symfony
Author
Albert FloresSymfony 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. +morex byla poslední revizí 1. verze udržovanou do listopadu 2012 . 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.
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 [url=http://components. symfony-project. +moreorg/]vlastním webu[/url] . 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 * +moreus'>script. aculo. us, JavaScriptová knihovna postavená na Prototype pro visuální efekty * [url=http://github. com/leafo/]PHP Less[/url], CSS parser postavený na projektu [url=http://lesscss. org/]Less[/url] * 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. +more * 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.
Ukázkový projekt Jobeet
Na adrese [url=http://www. jobeet. +moreorg]Jobeet[/url] běží ukázkový projekt napsaný v Symfony přesně podle knihy [url=http://www. symfony-project. org/get/pdf/jobeet-1. 4-doctrine-en. pdf]Practical symfony[/url] . Je povoleno v něm cokoli modifikovat, každých 24 hodin se automaticky přepíše databáze do původního stavu.
Praktické použití
Symfony je používán [url=https://web. archive. +moreorg/web/20120212082550/http://trac. symfony-project. org/wiki/ApplicationsDevelopedWithSymfony]mnoha známými webovými stránkami[/url] po celém světě. Mezi ty nejznámější patří: * [url=http://www. askeet. com/]Askeet[/url], 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 * [url=http://dailymotion. com]Dailymotion[/url], částečně přešlo na Symfony a pokračuje i nadále.
U nás pak: * [url=http://www.ijv.cz/]Institut jazykového vzdělávání[/url] * [url=http://www.kky.zcu.cz/]Katedra kybernetiky ZČU[/url]
Reference
Externí odkazy
[url=http://www.symfony.com/]Oficiální stránka[/url]
Kategorie:Webové aplikační frameworky Kategorie:Svobodný software naprogramovaný v PHP