Symfony

Symfony
Logo
Výchozí stránka Symfony
Výchozí stránka Symfony
VývojářSensio Labs
Aktuální verze7.0.7 (29. dubna 2024)
Operační systémMultiplatformní
Vyvíjeno vPHP
Typ softwaruWebový aplikační framework
LicenceMIT licence
Websymfony.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
  • 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ří:

U nás pak:

  • Institut jazykového vzdělávání
  • Katedra kybernetiky ZČU

Reference

  1. 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. 
  2. 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. 
  3. http://www.symfony-project.org/installation Archivováno 18. 12. 2010 na Wayback Machine. Symfony The Choice Matrix
  4. http://symfony.com/doc/current/contributing/community/releases.html
  5. 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. 
  6. 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

  • Logo Wikimedia Commons 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
AppFuse • Flexive • Grails • GWT • ItsNat • JavaServer Faces • Makumba • OpenXava • Reasonable Server Faces • Restlet • RIFE • Seam • Spring • Stripes • StrutsTapestryVaadin • WebWork • Wicket • ZK
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 • JelixKohana • Kolibri • KumbiaPHP • Laravel • Midgard • Nette Framework • Orinoco • PHPonTrax • PRADO • Qcodo • Qcubed • Seagull • Simplicity • Symfony • WASP • Yii Framework • Zend FrameworkZope
Python
DjangoFlask • Pyjamas • Pylons • TurboGears • web2pyZope
Ruby
Hanami • MerbRuby 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)
Autoritní data Editovat na Wikidatech