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


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...


Drush – Die Drupal Shell
Manche Sachen sind in Drupal wirklich nervig, vor allem dann, wenn man als Webhoster in der Shell arbeitet und ständig zum Webbrowser wechseln muss. I...


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 und die nicht optimierte Datenbank
Drupal kann viel, darüber sind wir uns einig, was Drupal allerdings nicht gut kann, ist eine Datenbank so zu generieren, dass aufgrund geeigneter Indi...

Kommentare

  1. Brendon

    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

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