Doctrine (PHP)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Doctrine
Aktuelle Version 2.4.0
(7. September 2013)
Programmier­sprache PHP
Kategorie Framework, Objektrelationaler Mapper
Lizenz GNU Lesser General Public License
www.doctrine-project.org

Doctrine oder phpDoctrine ist ein Framework zur objektrelationalen Abbildung (englisch object-relational mapping, ORM) für PHP 5.3.0+. Doctrine wurde unter den Gesichtspunkten der Geschwindigkeit und Reichhaltigkeit an Funktionen entwickelt. Jonathan Wage, seit 2007 Projektleiter bei Doctrine, erklärt: „Ein ORM ist eine Abstraktionsschicht zwischen relationaler Datenbank und der eigentlichen Anwendung. Statt per SQL kann man durch das ORM objektorientiert auf die Daten zugreifen.“[1]

Das Framework setzt auf einer leistungsstarken Datenbankabstraktionsschicht auf. Durch Doctrine ist mit Hilfe von PHP ein einfacher Zugriff auf verschiedene Datenbanktypen möglich, wie beispielsweise MySQL. Das Prinzip von Doctrine greift ebenfalls Gedanken von Hibernate auf. Hierfür kommt die proprietäre SQL-Sprache namens Doctrine Query Language (DQL) zum Tragen, die von Hibernates HQL inspiriert wurde.

Programmierer, die mit Doctrine arbeiten, müssen ihre Abfragen nicht länger in SQL formulieren. Der objektorientierte Ansatz ermöglicht ein abstraktes Arbeiten unabhängig von der verwendeten Datenbank. Auch können Datenbankinhalte objektorientiert verwaltet werden, ohne einen Wrapper dafür bereitzustellen. Die objektrelationale Funktionalität wird hier den Objekten selbst zugewiesen, ohne dass eine aufwändige Programmierung in PHP notwendig ist. Auf diese Weise gestaltet sich die Verwaltung eines Softwareprojektes wesentlich einfacher.

Anwendungsbeispiel[Bearbeiten]

Wenn als Beispiel ein neues Benutzerobjekt in der Datenbank erstellt werden soll, könnte das in PHP geschrieben wie folgt aussehen:

 $user = new User();
 $user->setName("Max");
 $user->setPassword("test");
 $entityManager->persist($user);
 $entityManager->flush();
 echo "Der Benutzer mit der ID ".$user->getId()." wurde erfolgreich hinzugefügt.";

Hierbei wird der sogenannte Entity Manager von Doctrine angewiesen, ein Objekt (Model) zu speichern. Der Entity Manager verwaltet Models und dient als Schnittstelle zur Datenbank.

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Jonathan Wage, Doctrine: „Wir hatten gute Entwickler, aber keine Vision“. In: t3n. 10. Juni 2010, abgerufen am 18. Juni 2012.