Symfony
Výchozí stránka Symfony | |
Vývojář | Sensio Labs |
---|---|
Aktuální verze | 7.1.3 (26. července 2024) |
Operační systém | Multiplatformní |
Vyvíjeno v | PHP |
Typ softwaru | Webový aplikační framework |
Licence | MIT licence |
Web | symfony.com |
Některá data mohou pocházet z datové položky. |
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[1] 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[2].
Symfony 1.4.x byla poslední revizí 1. verze udržovanou do listopadu 2012 [3]. 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.[4]
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 Archivováno 31. 10. 2011 na Wayback Machine.. 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
- cache – cache zkompilovaných šablon
- 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 [5]
- Dailymotion, částečně přešlo na Symfony a pokračuje i nadále [6]
U nás pak:
- Institut jazykového vzdělávání
- Katedra kybernetiky ZČU
Reference
- ↑ symfony framework forum: General discussion ⇒ New symfony tagline brainstorming. www.symfony-project.org [online]. [cit. 2010-03-30]. Dostupné v archivu pořízeném dne 2008-12-22.
- ↑ symfony Web PHP Framework » Blog » Two years of symfony. www.symfony-project.org [online]. [cit. 2010-03-30]. Dostupné v archivu pořízeném z originálu dne 2009-01-22.
- ↑ http://www.symfony-project.org/installation Archivováno 18. 12. 2010 na Wayback Machine. Symfony The Choice Matrix
- ↑ http://symfony.com/doc/current/contributing/community/releases.html
- ↑ Symfony Blog - Delicious Preview built with Symfony. www.symfony-project.org [online]. [cit. 2010-03-30]. Dostupné v archivu pořízeném z originálu dne 2010-04-01.
- ↑ Symfony Blog - Dailymotion, powered by Symfony. www.symfony-project.org [online]. [cit. 2010-03-30]. Dostupné v archivu pořízeném z originálu dne 2009-11-18.
Externí odkazy
- Obrázky, zvuky či videa k tématu Symfony na Wikimedia Commons
- Oficiální stránka
Webové aplikační frameworky | |
---|---|
ASP.NET | ASP.NET MVC • BFC • DotNetNuke • MonoRail • Umbraco |
C++ | CppCMS |
ColdFusion | ColdSpring • Fusebox • Mach-II • Model-Glue • on Wheels • onTap |
Common Lisp | ABCL-web • BKNR • SymbolicWeb • UnCommon Web |
Java | |
JavaScript | AngularJS • Archetype JavaScript Framework • Bonsai (framework) • Brick (framework) • CreateJS • D3 • Dojo • Ember • Enyo (framework) • ExtJs • FabricJS • Fleegix • JavaScriptMVC • jQuery • jTypes • KineticJS • Knockout.js • Lo-dash • midori • MooTools • NodeJs • PaperJS • Processing.js • Prototype • qooxdoo • Raphael (framework) • React • RightJS • Shipyard • SimpleJS • SproutCore (JavaScript/Ruby) • Spry • The X Toolkit • Thorax (framework) • Tree.js • UIZE • Underscore • Vue.js • WebApp Install • YUI • Zepto (framework) |
Perl | Catalyst • Dancer • Interchange • Mason • Masser • Maypole • Mojolicious • OX • PEE • Plack • WebGUI |
PHP | Agavi • Akelos • CakePHP • Chisimba • CodeIgniter • Garden Platform • Horde • Jelix • Kohana • Kolibri • KumbiaPHP • Laravel • Midgard • Nette Framework • Orinoco • PHPonTrax • PRADO • Qcodo • Qcubed • Seagull • Simplicity • Symfony • WASP • Yii Framework • Zend Framework • Zope |
Python | |
Ruby | Hanami • Merb • Ruby on Rails • Sinatra |
Scala | Lift |
Smalltalk | AIDA/Web • Seaside |
Ostatní jazyky | Application Express (PL/SQL) • Fusebox (ColdFusion a PHP) • OpenACS (Tcl) • Yaws (Erlang) • HAppS (Haskell) |