„Symfony“ – Versionsunterschied

[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Updated the latest stable version number
Neuer Release eingepflegt
Zeile 3:Zeile 3:
|Screenshot= [[Datei:Symfony2.svg|200px|zentriert|Symfony2 Logo]]
|Screenshot= [[Datei:Symfony2.svg|200px|zentriert|Symfony2 Logo]]
|Beschreibung=
|Beschreibung=
|AktuelleVersion= 2.4.5
|AktuelleVersion= 2.5.0
|AktuelleVersionFreigabeDatum= 23. Mai 2014
|AktuelleVersionFreigabeDatum= 1. Juni 2014
|Betriebssystem= [[Plattformunabhängigkeit|plattformunabhängig]]
|Betriebssystem= [[Plattformunabhängigkeit|plattformunabhängig]]
|Programmiersprache = [[PHP]]
|Programmiersprache = [[PHP]]
Zeile 126:Zeile 126:
| Erste LTS (Long Term Support) Version
| Erste LTS (Long Term Support) Version
|-
|-
| {{Version|c|2.4}}
| {{Version|co|2.4}}
| Dezember 2013
| Dezember 2013
| 8 Monate
| 8 Monate
| Juli 2014
| Juli 2014
| >= 5.3.3
|
|-
| {{Version|c|2.5}}
| Juni 2013
| 8 Monate
| Januar 2015
| >= 5.3.3
| >= 5.3.3
|
|

Version vom 16. Juni 2014, 13:47 Uhr

Symfony

Symfony2 Logo
Symfony2 Logo
Basisdaten

EntwicklerSensioLabs
Erscheinungsjahr22. Oktober 2005
Aktuelle Version2.5.0
(1. Juni 2014)
Betriebssystemplattformunabhängig
Programmier­sprachePHP
KategorieWeb Application Framework
LizenzMIT-Lizenz
deutschsprachignein
symfony.com (v 2.x)
symfony.com/legacy (v. 1.4)

Symfony ist ein in PHP 5 geschriebenes quelloffenes Web Application Framework, das dem Model-View-Controller-Schema (MVC) folgt.

Geschichte und Philosophie

Symfony wird seit 2005 unter der Führung von Fabien Potencier entwickelt. Es entstand parallel zur steigenden Popularität von Ruby on Rails und dem Wunsch nach einem ähnlichen MVC-Framework auf PHP-Basis. Symfony versucht die Konfiguration auf ein Minimum zu beschränken. Wenn keine Konfiguration dafür angegeben ist, erfolgt die Zuordnung von z. B. Models zu Datenbanktabellen über die Namensgleichheit in Singular und Plural (Konvention vor Konfiguration). Durch die Konsolenanwendung können einfache Webseiten mittels Rapid Application Development entwickelt werden.

Version 2 ist im Juli 2011 erschienen. Sie stellt eine Neuimplementierung dar, die sich gänzlich von Version 1 unterscheidet. Eine einfache Möglichkeit, Anwendungen von Version 1 nach Version 2 zu migrieren, existiert nicht. Das Framework besteht nun aus Modulen, sogenannten Bundles, welche voneinander vollkommen unabhängig lauffähig sind, aber nahtlos in den Framework-Prozess integriert werden können.[1] Durch die Verwendung eines Dependency Injection Containers ist die gesamte Anwendung modular aufgebaut. Dies bewirkt eine einfache Testbarkeit und Erweiterbarkeit. Außerdem werden Namespaces unterstützt. Somit erfordert Symfony 2 PHP 5.3 oder höher.

Bundles

Bundles sind voneinander gelöste Einheiten einer Webapplikation. Ein Gästebuch-Bundle enthält demnach alle Daten, die zur vollständigen Lauffähigkeit des Gästebuchs dienen. Dazu gehören nicht nur die erforderlichen Klassen, sondern auch Ressourcen (Grafiken, Scripts etc.). Entwickler können entwickelte Bundles veröffentlichen, so dass andere Nutzer von Symfony 2 diese Applikationseinheiten ohne Codeänderungen implementieren können.

Merkmale

  • Konfiguration mit YAML, Annotations, XML oder PHP
  • Datenbankzugriff über ORM-Layer
  • Scaffolding von CRUD-Interfaces
  • Request-Dispatcher und dynamisches Routing für Clean URLs
  • Templates auf Basis von Twig oder nativer PHP-Syntax
  • Helper vereinfachen die Arbeit in den Templates (Ajax, JavaScript, Formulare uvm.)
  • Mehrsprachigkeit und I18N-Support
  • Datenvalidierung über Constraints
  • Filtern von über Formulare eingespeistem Schadcode
  • Komponenten für Session-Verwaltung, Request-Handling und Security
  • Umfassendes Caching der Ausgabe
  • Pluginfähig mit Bundles

Schichten

Das Entwurfsmuster Model-View-Controller wird von Symfony wie folgt umgesetzt:

Modell

Zur Speicherung der Objekte kommen zwei Plugins zur Auswahl (Doctrine und Propel) mit. Dabei handelt es sich um OR-Mapper, um PHP-Objekte in einer Datenbank speichern zu können.

Die Beziehungen zwischen verschiedenen Modellen werden über sogenannte Associations festgelegt.

Ab der Version 1.1 von Symfony wurde das bisherige Standardframework Propel in ein Plugin ausgelagert und ist nicht mehr fester Bestandteil des Frameworks.

View

Unter einem View versteht man die Präsentationsschicht der Applikation. In der View-Schicht werden mit Hilfe des Controllers Inhalte bereitgestellt, die oftmals Templates für die Ausgabe einbeziehen. Dabei kann beliebiger PHP-Code in einem Template eingebettet werden. Symfony bringt sogenannte Helper mit, welche bestimmte Ausgaben in Templates erstellen oder formatieren können, etwa Links oder Formulare. Für sich wiederholende Ausgaben kann man auf Partials zurückgreifen, welche innerhalb der Templates iterierbar sind.

Controller

Der Controller formuliert die Business-Logic und bietet Schnittstellen, um mit dieser zu interagieren. Diese Schnittstellen werden wie in vielen anderen Frameworks auch Actions genannt. Es können auch Parameter für die Methode übergeben werden. Der Entwickler kann die Struktur der URLs mit Hilfe von Routen sehr flexibel anpassen.

Versionen

VersionErscheinungsdatumSupportSupport bisPHP VersionBemerkungen
Ältere Version; nicht mehr unterstützt: 1.0Januar 20073 JahreJanuar 2010>= 5.0
Ältere Version; nicht mehr unterstützt: 1.1Juni 20081 JahrJuni 2009>= 5.1Sicherheitsrelevante Updates bis Juni 2010
Ältere Version; nicht mehr unterstützt: 1.2Dezember 200815 MonateFebruar 2010>= 5.2
Ältere Version; nicht mehr unterstützt: 1.3November 20091 JahrNovember 2010>= 5.2Wie 1.4, jedoch mit Kompatibilitäts-Ebene für bestehende Symfony-Projekte[2]
Ältere Version; nicht mehr unterstützt: 1.4November 20093 JahreNovember 2012>= 5.2
Ältere Version; nicht mehr unterstützt: 2.0Juli 201120 MonateMärz 2013>= 5.3.2Umstieg auf PHP 5.3[3]
Ältere Version; nicht mehr unterstützt: 2.1September 20129 MonateMai 2013>= 5.3.3Überarbeitete Form-Komponente, Einsatz von Composer[4]
Ältere Version; nicht mehr unterstützt: 2.2März 20138 MonateNovember 2013>= 5.3.3Überarbeitete Form-Komponente, Einsatz von Composer[4]
Ältere Version; noch unterstützt: 2.3Mai 20133 JahreMai 2016>= 5.3.3Erste LTS (Long Term Support) Version
Ältere Version; noch unterstützt: 2.4Dezember 20138 MonateJuli 2014>= 5.3.3
Aktuelle Version: 2.5Juni 20138 MonateJanuar 2015>= 5.3.3
Legende:
Ältere Version; nicht mehr unterstützt
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version

Verwendung

Literatur

  • Francois Zaninotto, Fabien Potencier: The Definitive Guide to symfony, Apress 2007, ISBN 1-59059-786-9, auch online verfügbar, englisch
  • Timo Haberkern: Das Symfony Framework, entwickler.press 2008, ISBN 3-939084-14-X, deutsch
  • Fabien Potencier: Practical symfony 1.2 for Doctrine, 2009, ISBN 978-2-918390-06-0, englisch
  • Fabien Potencier: Practical symfony 1.2 for Propel, 2009, ISBN 978-2-918390-07-7, englisch
  • Fabien Potencier: The symfony 1.2 Reference Guide, 2009, ISBN 978-2-918390-05-3, englisch
  • Fabien Potencier, Hugo Hamon: Symfony, Mieux développer en PHP avec Symfony 1.2 et Doctrine, Eyrolles 2009, ISBN 978-2-212-12494-1, französisch
  • Tim Bowler, Wojciech Bancer: Symfony 1.3 Web Application Development. 1. Auflage. Packt Publishing Ltd., Birmingham 24. September 2009, ISBN 1-84719-456-7, S. 228. (Englisch)
Commons: Symfony – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

  1. Fabien Potencier: What is symfony2? Abgerufen am 5. Juni 2012.
  2. symfony-project.org: Symfony Versionen. Download and Install. Abgerufen am 2. November 2011.
  3. symfony-project.org/blog: Why will Symfony 2.0 finally use PHP 5.3? Abgerufen am 2. November 2011.
  4. a b getcomposer.org: Composer. Abgerufen am 24. Juli 2012.
  5. Fabien Potencier: Symfony2 meets Drupal 8. Abgerufen am 28. August 2013.
  6. eZ Systems / Jérôme Vieilledent: eZ Publish 5 from a technical point of view. Abgerufen am 24. Juni 2013.
  7. Fabien Potencier: Silex – The PHP micro-framework based on the Symfony2 Components. Abgerufen am 14. Februar 2014.