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

Administrations-Menü für WordPress und Drupal Im Gegensatz zu WordPress hat Drupal ein echtes Problem, und das heißt Backoffice. Es ist jetzt nicht so schlimm wie das von Typo3, aber man hätte das...
Drupal, die White Screen of Death und das Byte Ord... Was ein Titel – hollywoodtauglich! :) Aber durchaus mit einem Hintergrund: Drupal kann in einen Zustand geraten, wo es außer einer weißen Seite (der W...
Drupal Starter Themes Mir ist noch nichts eingefallen zum Thema "Wie kann ich es nett ausdrücken, dass man NICHT das Drupal-Standard-Theme als Grundlage für eigene Projekte...
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