Code-Symfony

Teil 3: Serie: PHP-Frameworks Teil 2 - Symfony im Detail

22.7.2009 von Redaktion pcmagazin und Timo Haberkern

ca. 1:50 Min
Ratgeber
  1. Serie: PHP-Frameworks Teil 2 - Symfony im Detail
  2. Teil 2: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
  3. Teil 3: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
  4. Teil 4: Serie: PHP-Frameworks Teil 2 - Symfony im Detail
  5. Teil 5: Serie: PHP-Frameworks Teil 2 - Symfony im Detail

Das Ergebnis sind eine Reihe von Klassen für jede Datenbanktabelle. Diese Klassen sind für den eigentlichen Zugriff auf die Datenbank erforderlich.

Für alltägliche Operationen sind keine SQL-Befehle mehr notwendig. Das nächste Beispiel zeigt das Anlegen eines neuen Artikels und das darauf folgende Speichern in der Datenbank. Der Primärschlüssel, in diesem Fall ist dies das Feld id, wird dabei nach dem Speichern automatisch mit dem entsprechenden Schlüsselwert aus der Datenbank gefüllt.

<?php
$value = new Article();
$value->name = 'V21A Kollektor';
$value->article_number = '164304';
$value->save();
echo 'ID='.$value->id;
?>

Ähnlich einfach ist das Lesen von Daten mit einem bekannten Schlüsselfeld. Das geladene Objekt kann anschließend verändert, gespeichert oder auch gelöscht werden.

<?php
// Lesen von Werten
$value = Doctrine::getTable
('Article')->find($id);
// Verändern
$value->name = 'Geänderter Wert';
$value->save();
// Löschen
$value->delete();
?>

Diese Art des Datenbankzugriffs ist für einfache Zugriffe ausreichend, etwa für Operationen auf einem Datensatz von dem der Primärschlüssel bekannt ist. Für komplexere Dinge bieten die beiden Zugriffslayer Propel und Doctrine eigene objektorientierte Abfragesprachen an.

Die Doctrine Query Language (DQL) ist hierbei besonders effektiv und elegant. Wie im folgenden Beispiel zu sehen, orientiert sich die Abfragesprache an SQL und ist daher für erfahrene Entwickler schnell und einfach erlernbar.

<?php
// Einfacher lesender Zugriff
$query = new Doctrine_Query();
$query->from('Author a')->where("a.
LastName = 'Haberkern'");
$result = $query->execute();
// Lesender Zugriff mit Joins
$query->from('Author a')
->leftJoin('a.Books b')
->innerJoin('a.Publisher p WITH
a.id > 3')
$users = $query->execute();
?>

Propel geht hier einen etwas anderen Weg, der nicht ganz so eingänglich, aber nicht minder leistungsfähig ist.

View

Die View-Schicht ist, wie eingangs erwähnt, das Bindeglied zwischen der Anwendungs- und Datenbanklogik und dem Benutzer. Dieser Schicht werden alle Bestandteile zugeordnet, die zur Erstellung und Anzeige von HTML-Seiten notwendig sind. Des Weiteren werden bei der Entwicklung mit Symfony Inhalt und Gestaltung klar voneinander getrennt.

Die View-Klassen sind für die Ausgabe der Daten als HTML-Seite verantwortlich und nutzen Templates zur Ausgabe. Dadurch lässt sich das Design einer Anwendung zu einem späteren Zeitpunkt sehr einfach verändern.

Jede Seite kann dabei aus mehreren Templates (sogenannten Partials) bestehen. So lassen sich Elemente, die auf allen Seiten vorkommen, in einem Partial zusammenfassen. Dadurch wird redundanter Quellcode vermieden. Die Template-Ausgaben einer Operation werden zudem in ein übergeordnetes Layout der Anwendung eingebettet.

Mehr lesen

Chronologische Liste und Netflix-Links

Marvel-Filme- und -Serien: Das ist die richtige Reihenfolge

Neuerscheinungen in der Übersicht

Netflix: Neue Filme und Serien

Vorschau auf Film- und Serien-Highlights

Amazon Prime Video: Neuheiten

Weiter zur Startseite  

Mehr zum Thema

internet, webdesign, adobe,  Illustrator, CS6

Webdesign

Webdesign in Adobe Illustrator CS6

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.

Facebook stellte die neue Suche

Facebook

Facebooks Social Graph Search

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?

Der BGH erklärt das Internet zur Lebensgrundlage.

Online-Recht

Darauf müssen Sie bei den AGB achten

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.

Online-Urheberrecht: Unser Ratgeber bietet Tipps für das Cloud-Recht.

Online-Recht in der Cloud

Wie sieht das Urheberrecht in der Wolke aus?

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…

Logistik im E-Commerce: Prozesse rund um die Logistik.

E-Commerce-Logistik

Logistik im E-Commerce

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.