Eine Doctrine2 Übersicht

Doctrine2 bietet eine Vielzahl von Projekten, welche mit der Verbindung von PHP zu einer Datenbank zu tun haben. In Symfony ist Doctrine2 bereits von Haus aus integriert und kann verwendet werden, um unabhängigere und komfortablere Datenhaltung zu ermöglichen. In diesem Artikel sehen wir uns zuerst die Grundlagen an bevor wir im nächsten Artikel zu diesem Thema dann zur Symfony spezifischen Verwendung kommen.

Was ist Doctrine2?

Bei Doctrine2 handelt es sich um eine Sammlung von Projekten wie zum Beispiel einen Object Relational Mapper (kurz ORM), einen Database Abstraction Layer (kurz DBAL) oder Migrations. Diese Projekte bieten eine Zwischenschicht zwischen PHP und der Datenbank die die bisherige Funktionalität von PDO zum Beispiel um viele Funktionen erweitert. Im restlichen Verlauf des Artikels beschäftigen wir uns mit dem ORM. Dieser sorgt dafür, dass wir Daten aus der Datenbank direkt in PHP Objekten verändern und verwerten können. Dadurch, dass der Doctrine2 ORM uns die Queries abnimmt sind wir hier wesentlich flexibler.

 

Die Entities

Im ORM dreht sich alles um die sogenannten Entities. Frei übersetzt könnte man einfach sagen ein Entity ist ein Ding. Was aus einem Entity wird bestimmen wir selbst, denn jedes Entity ist eine Klasse deren Funktionalität wir quasi frei programmieren können. Über Doctrine2 können wir dann dafür sorgen, dass der Zustand der Entities (also die Attribute der Klasse mit ihrem aktuellen Wert) persistent (dauerhaft) gespeichert werden. Und hier kommt dann die Datenbank ins Spiel, denn hier werden die einzelnen Werte gespeichert und in einem anderen Script möglicherweise wieder abgerufen um das Entity erneut zu erzeugen. Über ein sogenanntes Mapping teilen wir Doctrine2 dann mit, welche Attribute der Entityklassen in welchen Feldern einer Tabelle gespeichert werden sollen – dies kann zum Beispiel über Annotations (eine spezielle Art von PHP Kommentaren), XML oder YAML erfolgen. Auf die genaue Funktionsweise gehen wir dann im Symfony Tutorial anhand einer Beispielanwendung ein.

 

 

Der EntityManager

Die zentrale Verwaltungseinheit in Doctrine2 ist der EntityManager. Dieser kümmert sich um das ganze Drumherum unserer Entities, also zum Beispiel das persistente Abspeichern der Daten in der Datenbank und das Auslesen aus derselben, beziehungsweise überhaupt erstmal das Finden des richtigen Entities.

 

Mit diesen grundlegen Informationen sind wir nun schon einen Schritt weiter, was Doctrine2 uns bieten kann. Im nächsten Artikel dazu befassen wir uns mit der Funktionsweise in Symfony und probieren es direkt anhand einer Beispielanwendung aus.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*