Propel
Aus php bar
Propel ist ein nützliches Werkzeug für das Object-Relational-Mapping (ORM), um PHP-Objekte in einer relationalen Datenbank speichern zu können. Propel wurde für PHP 5 entwickelt und basiert auf dem Apache Torque Projekt.
Inhaltsverzeichnis |
Einführung
Propel erlaubt dem Entwickler, Objekte statt SQL zu verwenden, um Daten aus den Tabellen einer Datenbank zu lesen oder zu schreiben. Propel besteht aus zwei Tools:
- dem Generator, welcher SQL Definitionsdateien und PHP Klassen aus dem Datenmodell erstellt
- der Runtime Engine, mit dem Objekte in der Datenbank gespeichert und aus der Datenbank gelesen werden können
Propel bietet einfache Möglichkeiten, um die generierten Klassen an die eigenen Bedürfnisse auszupassen. Durch die Verwendung von XML für die Definition des Datenmodells lässt sich Propel leicht in existierende Frameworks integrieren. Die generierten Klassen können auch als Datenklassen bezeichnet werden.
Generator
Auf Basis eines einfachen XML Schemas, mit dem die Datenbank und die Tabellen beschrieben werden, erstellt der Generator die PHP Klassen, die mit dem Datenmodell interagieren können, und SQL Definitions Dateien, um die Tabellen, Schlüssel, usw. im Relationalen Datenbanksystem zu erstellen.
Runtime Engine
Die Runtime Engine bietet die Möglichkeit, die generierten Klassen in den eigenen PHP Skripten zu verwenden, um das Lesen und Schreiben der Datenbank transparent zu halten.
Die Runtime Engine steht im Gegensatz zum Generator auch in einer Version für PHP 4 zur Verfügung. Diese Version wird in Zukunft jedoch nicht mehr weiter gepflegt werden.
Voraussetzungen
Folgende Voraussetzungen müssen erfüllt sein, um Propel nutzen zu können:
- auf dem Server muss PHP 5 installiert sein
- als Datenbankabstraktionsschicht setzt Propel auf Creole
- für das Logging wird das PEAR-Paket PEAR::Log benötigt
- Phing wird benötigt, um aus dem Datenmodell des XML Schemas die Klassen und die SQL Definitionsdatei zu erstellen
Unterstützte Datenbanken
Propel unterstützt derzeit folgende Datenbanken:
Die Unterstützung für Oracle ist in Arbeit. Der Konkurrent EZPDO hat eine deutlich breitere Unterstützung für Datenbanken.

