Symfony
Symfony ist ein von der Firma SensioLabs erstelltes PHP Framework. Das bedeutet, es gibt sowohl eine grundlegende Architektur als auch viele Basisfunktionalitäten bereits vor, was uns als Programmierer eine enorme Zeitersparnis bringt. Anstatt bei jedem Projekt das Rad neu zu erfinden können wir hiermit viele Funktionalitäten wiederverwenden beziehungsweise bereits fertige Module (auch Bundles genannt) in unser Projekt einbinden aber natürlich auch unsere eigenen Bundles anderen Programmierern zur Verfügung stellen. Durch die steigende Beliebt- und Bekanntheit von Symfony gibt es hier immer mehr bereits vorgefertigte Bundles – ähnlich den Plugins und Extensions diverser CMS Systeme – und wir können uns ganz der Kernfunktionalität und dem Inhalt unserer Anwendungen widmen. Symfony ist fester Bestandteil von einigen der größten Open-Source-Projekte, wie Drupal, PHPBB, PIWIk und Laravel. Das macht eine eine Weiterentwicklung in alle Richtungen einfacher.
Projekte, die Symfony nutzen:
Quelle: SensioLabs
Symfony ist ein Quelloffenes Framework und gehört zu den MVC-Frameworks. Bei diesen gibt es eine klare Trennung zwischen Daten (Model), Darstellung (View) und Code (Controller) was die Übersichtlichkeit in größeren Projekten bewahrt. PHP Code wird hierbei nicht mit HTML vermischt. So ist bei der generierung der Seiten keine HTML Ausgabe in der Art: echo '<h1>Heading</h1>';
notwendig.
Symfony besteht aus drei Hauptpaketen: Symfony selber, Doctrine und TWIG.
Symfony
Symfony sorgt für die Kommunikation zwischen den einzelnen Klassen und bietet viele wertvolle Funktionalitäten. Mit einer interaktive Konsole ist es möglich, regelmäßige Prozesse wie das anlegen von Controllern zu automatisieren.
Doctrine
Doctrine ist für die Datenbank-Schicht zuständig. So werden zum Beispiel die Tabellen und Relationen auf Basis der PHP-Models (Entities) erstellt. Theoretisch wird kein zusätzliches Datenbankprogramm wie phpMyAdmin benötigt, um die Datenbank zu verwalten.
TWIG
TWIG ist die Template-Engine welche von Symfony mit geliefert wird. Diese steuert die Präsentations-Schicht (Darstellung der Seite im Browser).
Zur Verringerung der Entwicklungszeit aufwendiger Web-Anwendungen bietet das Framework neben fertigen Bundles eine Reihe von Tools. Bestimmte Routineaufgaben sind bereits automatisiert. Somit können Entwickler voll auf die Anwendungslogik fokussieren und es wird bei der Entwicklung neuer Web-Applikationen auf bereits vorhandene Grundlagen zurückgegriffen, damit hierfür nicht ständig separate und sich bei jedem neuen Projekt wiederholende Entwicklungsschritte erforderlich sind. Auch viele Webanwendungen, die eine hohe Performance erfordern, setzen auf dieses Framework. Neben der optimierten Performance und der Wiederverwendbarkeit von Code bietet die umfangreiche Template-Engine Twig einige Vorteile. So lassen sich beispielsweise mehrere Javascript- und CSS-Dateien dynamisch einbinden, die anschließend automatisch zusammgefasst und gegebenenfalls komprimiert (minified) werden, um die Ladezeiten zu reduzieren. Auch die Wiederverwendbarkeit von Code wird durch Twig optimal unterstützt.
<html>
<head>
{% block head %}
<link rel="stylesheet" href="style.css" />
<title>Acme Inc - {% block title %}{% endblock %}</title>
{% endblock %}
</head>
<body>
<ul>
{% for user in users %}
<li>{{ user.name }}</li>
{% endfor %}
</ul>
<div id="content">
{% block content %}
{% endblock %}
</div>
<div id="footer">
{% block footer %}
© Copyright {{ "now"|date("Y") }}.
{% endblock %}
</div>
</body>
<html>
Das automatisierte Caching bringt einen enormen Performance-Vorteil. Gerade bei komplexen Webanwendungen mit einer großen Nutzeranzahl zur gleichen Zeit wird so die Serverlast reduziert.
Die erste Version von Symfony wurde 2005 gelauncht. Seitdem hat sich Symfony als ein beständiges und vertrauensvolles Produkt am Markt etabliert und stößt auf internationale Anerkennung und Beliebtheit. SensioLabs, das Unternehmen hinter Symfony mit mehr als 150 Mitarbeiter und weltweiten Zweigstellen, kümmert sich um die Weiterentwicklung des Frameworks und bietet einen umfassenden Support sowie spezifische Tools, um die Qualität von Symfony Projekten stetig zu steigern.
Ganz Ihren individuellen Business Anforderungen entsprechend können Sie zum einen die Verwendung des kompletten Frameworks (Full Stack) wählen. Zum anderen stehen Ihnen auch die mehr als 30 Stand Alone Komponenten von Symfony zur Verfügung. Von einer simplen Web Applikation, zu einem Online Shop oder einer eigenen Suchmaschine – die Möglichkeiten bei der Verwendung von Symfony sind nahezu unbegrenzt. Auch wenn Seiten mithilfe anderer Content Management Systeme errichtet worden sind, hat man die Möglichkeit, diese mit Symfony zu erweitern und auf dem bereits existierenden Content aufzubauen.