Code-Symfony
Teil 4: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
- Serie: PHP-Frameworks Teil 2 - Symfony im Detail
- Teil 2: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
- Teil 3: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
- Teil 4: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
- Teil 5: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
Dadurch muss die anwendungsspezifische Optik der Anwendung nicht in jedem Template von Neuem erzeugt werden. Im Anwendungs-Layout sind in der Regel Kopf- und Fußzeilen und Menüs untergebracht.Die View-Schicht von Symfony erscheint auf den ersten Blick ziemlich straight forward. Es kommt kein ausgefeiltes Templating- System wie beispielsweise Smarty () zum Einsatz. Symfony-Templates sind reguläre PHP-Dateien, die in den Kontext einer Symfony-Anwendung eingebettet werden.Trotzdem bietet das Framework reichhaltig Unterstützung während des Entwicklungszeitraums. Damit der Quellcode der einzelnen Views übersichtlich und sauber bleibt, bietet Symfony beispielsweise eine Reihe sogenannter Helfer-Skripte. Diese Skripte erzeugen teilweise durch den Aufruf einer einzigen Funktion sehr komplexen und aufwendigen HTML-Quellcode.Symfony bietet eine Menge solcher Skripte, die sich nach Belieben erweitern oder durch online verfügbare Bibliotheken ergänzen lassen. Standardmäßig sind Helfer-Skripte für die Erzeugung von Formularen, Links, Javascript-Quellcode oder Ajax-Konstrukten und vieles andere mehr enthalten.Das nachfolgende Beispiel zeigt den Einsatz zweier Helfer-Skripte zur Datumsformatierung und Linkerzeugung innerhalb eines Templates.

<?php use_
helper('Date');?>
Datum: <?php echo
format_date($date, 'd', 'de');?><br/><?php echo link_
to('Task bearbeiten', 'Task/edit?id=1');?>
Die beschriebenen Funktionen sind nur ein Bruchteil der von Symfony zur Verfügung gestellten Features, die den View-Layer betreffen. Die Unterstützung von AJAX, Komponenten, Slots und Plugins können aufgrund ihres Umfangs nicht in diesem Artikel behandelt werden.
Generatoren
Hauptziel für den Einsatz eines Webframeworks wie Symfony ist die Steigerung der Produktivität. Aus diesem Grund bringt Symfony zusätzlich zu den bislang vorgestellten Features noch andere Hilfsmittel mit, die das Schreiben von Quellcode erleichtern oder unnötig machen.
Über das vorgestellte Kommandozeilen-Tool lassen sich anhand der Schema-Beschreibung der Datenbankschicht ganze Programme generieren, die bereits die grundlegenden Operationen auf Elemente der Datenbanken implementieren. Hierbei spricht man von Scaffolding, das von anderen Webframeworks wie beispielsweise Ruby on Rails bekannt ist.
Die Basisoperationen werden oft als CRUD bezeichnet, das für Create, Retrieve, Update und Delete steht. Der Aufruf des folgenden Kommandozeilen-Befehls erstellt für eine Klasse, die in der Schema-Datei definiert ist, Masken, über die sich die CRUD-Befehle ausführen lassen.
$> symfony doctrine:generate-crud
book Book
Die so generierten HTML-Oberflächen genügen nur einfachen Anforderungen, können jedoch als Ausgangspunkt für eigene Masken dienen. Oftmals genügen schon kleinere Änderungen und Anpassung von ein wenig CSS, um daraus fertige Oberflächen zu erstellen.
Flexibilität ist Trumpf
Eines der herausstechenden Merkmale von Symfony ist die äußerst flexible Möglichkeit durch Konfiguration eine Anwendung an eigene Bedürfnisse anzupassen. Wer das erste Mal in die vielen Konfigurationsdateien von Symfony schaut, der wird nahezu erschlagen von den vielen Stellhebeln, über die auf das Verhalten der Anwendung Einfluss genommen werden kann.
Glücklicherweise muss man sich nicht zwingend damit auseinandersetzen, denn der Großteil aller Einstellungen besitzt bereits eine sinnvolle Voreinstellung.