Drupal Goes ORM

Seit langer Zeit endlich mal was Neues zum Thema Drupal, und der Titel hört sich wirklich gut an, oder? Aber was will er uns diesmal damit mitteilen? :) ORM heißt nichts anderes als Object-relational Mapping (Objektrelationale Abbildung) und ist eine Technik der Softwareentwicklung.

ORM macht (ganz simpel ausgedrückt) aus einer beliebigen Datenbank eine Art Klasse, die man für die Programmierung verwenden kann. Viele PHP-Frameworks setzen auf dieses Konzept (CakePHP, Kohana) und das Ganze vereinfacht den Zugriff auf Datenbanken dahin gehend, dass man kein SQL mehr braucht. Ein bekanntes Beispiel für eine solche Umsetzung ist zum Beispiel Hibernate für Java.

Was bedeutet das genau? Will man zum Beispiel alle Benutzer einer Community ermitteln, die in Köln wohnen, ist mindestens eine SQL-Query nötig. Eine mögliche Query wäre zum Beispiel „SELECT email FROM users WHERE city = ‚Köln‘„; Würden wir das gleiche mit ORM erreichen wollen, wäre ein möglicher Aufruf zum Beispiel: „orm->find(array(‚user.city‘ => ‚Köln‘);„. Auf den ersten Blick ist das nicht sonderlich revolutionär, aber auf dem zweiten Blick merkt man schnell das man a) keine Ahnung von SQL haben muss und b) noch nicht einmal wissen muss, was die Datenbank im Hintergrund eigentlich macht und wie sie aussieht.

Um nun zurückzukommen auf Drupal: Wer schon einmal einen Modul geschrieben hat, weiß, dass es ein echtes Drama sein kann einen Node zu erzeugen. Hier kommt nun auch ORM ins Spiel. Dann natürlich funktioniert das Object-relational Mapping nicht nur zum Auslesen von Daten, sondern auch zum Schreiben! Ein Beispiel in Drupal ORM wäre zum Beispiel:

$newNode = orm('Page')->>create();
$newNode->>setTitle('hello world');
$newNode->body = 'foobar';
$newNode->save();

Wenn das Mal nicht cool ist! Und um das Ganze noch cooler zu machen, funktioniert es nicht nur mit den Core-Funktionen von Drupal, sondern auch mit CCK-Feldern! Das Modul ORM funktioniert derzeit nur mit der Version 6 von Drupal und es ist eine der wenigen Funktionen, von denen ich mir wünsche, dass sie irgendwann mal in den Core übernommen werden! Das kleine Tool vereinfacht die Erstellung von Plugins drastisch!

Ähnliche Beiträge

Drupal für Firebug Das Devel-Modul kennt wohl (hoffentlich) jeder, der schon einmal mit Drupal gearbeitet hat. Ich würde lügen, wenn ich sagen würde, das Devel in jedem ...
Drupal Backend mit iPhone & iPad Der Administrationsbereich von Drupal ist zugegebenermaßen maximal anstrengend, besitzt aber den Vorteil auch maximal anpassbar zu sein. Im Gegensatz ...
Was ist neu in Drupal 7? Nach dem „Erlass“ von Dries Buytaert, das Major Releases von Drupal nicht abwärts kompatibel sein müssen, steht den Webworker mit der Version 7 von Dr...
Mindmaps in Drupal Ganz richtig: Mindmaps IN Drupal, und nicht für Drupal :) Ich habe mal wieder ein interessantes und vor allem neues Modul für Drupal ausgegraben. Grap...

Ein Kommentar

  • Ich bin der Autor dieses Moduls, und ich möchte Ihnen für Ihre positive Bewertung bedanken. Erstellen eines ORM für Drupal ist äußerst schwierig, so Geduld geschätzt wird, wie ich versuche, dieses Modul zusammengestellt. Ich bin ständig auf die Verbesserung des Moduls und das Hinzufügen neuer Features, also bitte im Auge behalten dieses Moduls. Danke.

Schreibe einen Kommentar