Drupal logging – Arrays oder Objekte mittels watchdog() loggen

Die im Drupal-Core enthaltene Logging-Funktion kann von Haus aus einfache Datentypen wie Strings oder Integer ausgeben. Manchmal ist es aber nötig Arrays oder Objekte in den Log zu schreiben, um Aufschlüsse über das Laufzeitverhalten zu bekommen. Besonders in Fällen wo keine vollständige Entwicklungsumgebung inkl. XDebug und/oder dem Devel Modul verfügbar ist. Ein möglicher Use-Case wäre wenn im Livebetrieb einer Drupalcommerce-Installation ein Zahlungsmodul überwacht und untersucht werden soll (z.B. Paypal-Transaktionen).

Datenbank Logging einschalten

  • Datenbank-Logging einschalten unter Administration >> Konfiguration >> Protokollierung und Fehler (admin/config/development/logging)
  • Option Anzuzeigende Fehlermeldungen auf Alle Fehlermeldungen setzen und speichern
  • Log-Einträge sind dann unter Administration >> Berichte >> Aktuelle Protokollnachrichten (admin/reports/dblog)

Mittels watchdog() können out-of-the-box bereits Strings und einfache Datentypen in den Datenbank-Log geschrieben werden.

Logging von Strings und einfachen Datentypen:

watchdog("Mein Modul", "Inhalt der Variable: %stringdebug", array('%stringdebug' => $string));

Mit Hilfe von print_r() können auch Arrays oder Objekte geloggt werden. Es bietet sich folgendes Konstrukt an:

watchdog("Mein Modul", "Inhalt des Arrays: %arraydebug", array( '%arraydebug' =>'<pre>' . print_r( $array, true) . '</pre>'));

Sollte der Logeintrag aufgrund der Größe des Arrays/Objekts mühsam zu lesen sein, kann das Array/Objekt per Copy & Paste aus dem Logeintrag z.B. in einen Array-Beautifier kopiert und lesbar ausgegeben werden.

Individuelle Karten mit MapBox erstellen

„Wieso wissen nicht mehr Leute davon und warum benutzt es nicht jeder?“ Das fasst im Großen und Ganzen meine Gefühle für MapBox zusammen.

Mit der auf OpenStreetMap basierenden Plattform lassen sich schnell Karten für Print, Web und mobile Anwendungen erstellen und integrieren. MapBox Karten hat jeder von uns schon mal gesehen. Sie werden zum Beispiel von Foursquare, Le Monde, Evernote 5 für MacGitHub und Greenpeace verwendet. Selbst wenn man Maps gerade nicht für ein Projekt braucht, macht es einfach unheimlich Spaß selbst Karten zu gestalten.

Auf Mapbox.com sind alle Infos übersichtlich aufgeschlüsselt und aufgelistet. Um die Plattform zu testen, kann man die erste eigene Karte auch ohne Registrierung erstellen. Gratis kann man MapBox mit bis zu 3.000 Klicks pro Monat und 50 MB Speicherplatz nutzen. Die Satellit-Ansicht gibt es aber leider erst ab $5 pro Monat. Eine Einbindung mit Drupal ist übrigens über das Map Box Modul möglich.

Der Service ist auch per Smartphone nutzbar, indem man auf das Stift-Symbol klickt, um zur Vorschau zu gelangen. Das muss man erst durschauen. Dafür ist diese dann sofort da, von langen Ladezeiten keine Spur.

Das beste Feature ist für mich die völlige Freiheit, die man bei der einfachen Farbgestaltung der einzelnen Bereiche hat. Diese gliedern sich in Strassen, Gebäude, Flächen, Wasser und Land. Wir haben 3 verschiedene Ansichten zur Auswahl: Street, Terrain und Satellite. Es ist auch leicht möglich mehrere unterschiedlich aussehende Marker zu setzen. Es existieren zwar vorgefertigte Farbmuster, man kann auch eigenen Farben per HEX-Code integrieren.

Was mich überrascht hat ist die Ladegeschwindigkeit der Karten.

! MapBox serves maps from 30 globally distributed edge servers. With an edge server close by, MapBox is fast no matter where you are.

Das glaub ich aufs Wort!

Spannend ist vor allem TileMill, ein Open Source Projekt von MapBox – eigene Geodaten können beliebig gestylt und interaktiv nutzbar gemacht werden. Den Download gibt es hier.

Ein kleines Manko: Leider lassen sich tollen Farbregler, zumindest auf dem iPhone, trotz determiniertester Swipe-Bewegungen nicht verschieben. Die Suche nach Städten funktioniert wunderbar, nach Ortschaften nur manchmal und nach Strassennamen gar nicht.

Image Placeholder und Lorem ipsum Generatoren

Im Development oder Design kommt der Punkt, wo Texte und Bilder zum Einsatz kommen. Wer zu diesem Zeitpunkt sämtliches Bildmaterial dafür erhalten hat, kann sich glücklich schätzen. Oft ist der Wunsch der Vater des Gedanken und man muss sich mit klassischen Lorem ipsum Texten und Bildern aus dem privaten Fundus behelfen. Es gibt aber Alternativen, um mehr Leben abseits dieser klassischen Variante in die Designs zu bringen.

Die Klassiker

Die “Most wanted” unter den Image Placeholder Generatoren Placehold.it und Lorempixel kennt jeder. Hier findet man klassische Boxen, die Möglichkeit für Textinserts sowie unterschiedliche Bildkategorien. Nebenbei verfügen diese Services über eine Ausgabe als GIF, JPG und PNG Format.

Für Blindtexte verwende ich hauptsächlich den Lorem Ipsum Generator auf generator.lorem-ipsum.info. Dieser bietet neben klassischen Texten auch diverse Fremdsprachen, wie Chinesich oder Griechisch und Goodies in Form von Plansprachen oder Morsecode an. Braucht so schnell niemand, ich spiele nur einfach gerne damit. Die Textausgabe erfolgt als Plain Text oder in HTML. Zusätzlich gibt es die Möglichkeit, die Anzahl der Wörter sowie Absätze zu bestimmen. Diakritika stehen ebenfalls zur Auswahl.

Noch mehr Placeholder Generatoren

Wer Charlie Sheen oder andere Leinwandhelden hundertfach auf seiner Seite sehen will, findet diese genauso wie Bären oder Affen. Ganz beliebt natürlich auch die Varianten mit Schauspielern und Sängern. Von Vanilla Ice bis Nicoals Cage ist alles vorhanden. Letzere bietet auch noch ein kleines Feature dazu, die Crazy-Cage-Images. Warum jemand auf die Idee gekommen ist, Fleisch in allen möglichen Formen als Image Placeholer Service anzubieten bleibt mir ein Rätsel. Apropos Fleisch, passend dazu gibt es den Bacon ipsum Generator.

Katzen funktionieren immer im Web. Daher ist es unerlässlich Katzen- und Hundefans Image Placeholder Generatoren anzubieten. Auf Place Kitten und Place Puppy können sich Liebhaber damit eindecken. Um die Kätzchen auf der Seite nicht einsam sterben zu lassen, benötigt ihr nur noch den Kitty ipsum Text – extra fluffy versteht sich!

Eine Superidee ist definitiv Flickholdr. Die Latenzzeit auf der Website ist bei diesem Image Placeholder Service aber sehr problematisch, was eine schnelle Abfrage von Bildern unmöglich macht. Schade, wer hätte das Flickversum für sein eigenes Projekt nicht gern angezapft. Die Kommentare versprechen allerdings Hoffnung.

Ausgefallene Alternativen

Um von den unendlichen Alternativen zu meinen Favoriten zu kommen, muss man meine Leidenschaft kennen: Essen, Filme und das Web. Picksum ipsum liefert einem die kultigsten Sager einiger Hollywoodstars. Meinen Käsefetisch befriedige ich durch Cheese ipsum und meine Passion für das Web mit Web 2.0 ipsum. Alles nichts im Vergleich zu meinem Superheld aus der Jugend – Chuck Norris! Na gut, es handelt sich um eine Halbwahrheit, der Held meiner Jugend ist Mac Gyver. Der entschärft stillschweigend Atombomben oder baselt diese aus einem Kaugummi und einer Haarnadel. Somit scheidet er für einen Blindtext-Generator aus.

Drupal und WordPress Entwickler Tools

Für alle WordPress Entwickler steht das Lorem Shortcode Plugin bereit. Dieser Generator liefert wie der Name sagt, Lorem Ipsum Texte oder Image Placeholder mit Hilfe eines kurzen Befehls. Holder.js gibt es als eine weitere Möglichkeit für Entwickler, die gerne auf Katzen und Urlaubsbilder verzichten. Dieses Tool bietet die Möglichkeit, eigene Themes zu definieren oder Texte einzugeben und findet sich auf Github.

Und zu guter letzt folgt das praktische Drupal-Modul für Devel. Drupal Entwickler kennen und schätzen Devel, das neben seiner Hauptaufgabe auch auf Kommando Lorem Ipsum Texte für die lokale Seite generiert. Der Devel images provider für Drupal generiert Dummy Images aus verschiedenen Quellen. Was an diesem Placeholder Modul toll ist? Es funktioniert mit den meisten der oben genannen Services automatisch. Einen Anbieter wählen und Kätzchen, Zombies, Flickr Fotos und vieles mehr schmücken eure neue Seite.

Kurzer Nachtrag für alle Bierliebhaber: Beerhold.it und Bavaria ipsum! Bei Ersterem dreht es sich weniger um Bier als die Personen auf den Bildern und bei letzterem gibt es den Grantl-Modus.

Welche Favoriten habt ihr oder bleibt ihr lieber bei der klassischen Lorem Ipsum Variante bzw. bei Bildern aus eurem Privatarchiv?