Modul Entwickeln => Best Practices (oder: Hilfe Drupal macht, was es will!)
am 26.03.2009 - 22:09 Uhr in
Hallo zusammen!
Ich habe ein Problem: Ich verstehe nicht, was Drupal gerade macht...
Aber fangen wir vielleicht erst einmal vorne an und ich hole etwas aus.
Ich möchte mein erstes Modul entwickeln. Dieses Modul sollte alte Daten importieren und so mit Hilfe der API Nodes und User anlegen.
Nach dem das bei den ersten zwei Inhaltstypen nach ein paar Startschwierigkeiten geklappt hat wollte ich nun Benutzer automatisch erstellen.
Benutzer wurden auch erstellen, jedoch scheint die Funktion mehrfach aufgerufen zu werden (siehe auch: http://www.drupalcenter.de/node/17414).
Da ich bis jetzt noch keinen Tipp bekommen habe und auch in der deutschen und englischen Doku/Webseiten/Google nichts gefunden habe, habe ich eine neue vereinfachte Funktion erstellt und in das Menü gehangen. Das gleiche Problem.
Ich habe dann über das DEVEL Modul => PHP Code ausführen die Funktion aufgerufen. Das gleiche Problem, die Funktion wird mehrfach aufgerufen .
Dann habe ich die Funktion noch weiter vereinfacht und auch Debugausgaben geändert. Die Debugausgaben ändern sich nicht es scheint die erste Funktion aufgerufen zu werden!
Ich habe irgendwo gelesen, das es zum Teil Probleme mit Caching gibt. Daher habe ich den Cache geleert: über das DEVEL Modul, über das Administration Menü, ja sogar die Cache Tabellen in der Datenbank habe ich direkt geleert.
Ich habe auch gelesen, das ein Deaktivieren und ein Aktivieren des entwickelten Moduls helfen soll. Also habe ich dieses auch gemacht.
Siehe da, das Verhalten von Drupal ändert sich! ... aber nicht wie gewünscht! Nun scheinen beide Funktionen aufgerufen zu werden, obwohl die erste Funktion gar nicht eingetragen ist! Damit sind auch zwei Benutzer erstellt worden. Zu allem Überfluss werden die Funktionen immer noch mehrfach aufgerufen!
Ich habe sogar die erste Funktion im Quelltext auskommentiert, ein Deinstallieren und Installieren durchgeführt und die erste Funktion wird trotzdem noch ausgeführt!
Ich bin jetzt ratlos ... Drupal macht scheinbar einfach was es will ... Ich vermute irgendwo in den Untiefen von Drupal ist irgendwelcher alter Code gespeichert oder gecached ...
Daher mal ein paar Fragen an euch:
- Wie kann ich das Problem beheben?
- Wie sollte man bei der Modul-Entwicklung am besten vorgehen? Ich habe zum Teil direkt im Code (includierte Dateien) gearbeitet und dann getestet. Das scheint nicht immer zu funktionieren ...
- Muss man das Modul immer deinstallieren und wieder installieren?
- Gibt es noch irgendwelche anderen Caching Mechanismen?
- Gibt es irgendwelche anderen Tipps, die man berücksichtigen sollte bzw. was habe ich vielleicht verkehrt gemacht?
Vielen Dank für eure Hilfe!
Christian
- Anmelden oder Registrieren um Kommentare zu schreiben

Wichtige Module für Entwickler
am 30.03.2009 - 12:29 Uhr
Hallo Christian,
zum Entwickeln solltest du unbedingt das Devel-Modul (http://drupal.org/project/devel) installieren (hast du schon) und vielleicht auch noch das Trace-Modul (http://drupal.org/project/trace), wenn du wissen willst, was unter der Haube vorgeht.
Für tiefere Einblicke auch sehr nützlich ist die Firefox-Erweiterung Drupal for Firebug samt entsprechendem Modul (http://drupal.org/project/drupalforfirebug).
Damit solltest du schon weiter kommen.
Ansonsten bitte das Problem nochmal präziser oder in kleineren Häppchen formulieren.
Gruß
Frank
Dazu vlt noch Coder für
am 30.03.2009 - 12:48 Uhr
Dazu vlt noch Coder für guten Codestyle und Simpletest für test-basiertes Entwickeln.
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.de
SirFiChi ist auch dein Halbgott.
Entwickler-Module
am 30.03.2009 - 13:47 Uhr
Hier die Seite im Handbuch: http://www.drupalcenter.de/handbuch/8205. Müssten wir vielleicht mal entsprechend ergänzen.
Gruß
Frank
Was auch hilfreich sein
am 08.04.2009 - 08:29 Uhr
Was auch hilfreich sein kann, ist Eclipse mit einem PHP Debugger zu benutzen, Breakpoints setzen, Callstack und Variablen anschaun hat echten Mehrwert. Installationsanleitung haben wir hier verfasst: http://brightsolutions.de/xdebug_mit_eclipse_installieren