Console.log Workaround für IE

Beim Refactoring unserer Javascripte hat sich herausgestellt, das mit der neuen Struktur eine Consolen-Ausgabe mit Meta-Informationen über wann wo welches Script geladen wird unerlässlich ist. Benutzt man hierfür das Mozilla eigene console-Objekt, dann stößt man sehr schnell auf ein Problem:

Und zwar kennen andere Browser als der Firefox das console-Objekt nicht. Dadurch wird z.B. im Internet-Explorer beim ersten Aufruf von console.log() ein Javascript-Fehler geworfen und wie wir alle wissen brechen damit alle nachfolgenden Scripte ab.

Hier habe ich ein kleines Script gefunden, was überprüft, ob console definiert ist und wenn nicht, dann wird stattdessen ein Javascript-alert mit der logging-Ausgabe gemacht. Weil dies auf die Dauer aber auch nerven kann, kann man den alert über eine Variable einfach wieder abschalten.

Zudem kann man auch gleich das ganze logging über eine Variable abschalten, was ganz praktisch ist, wenn man auf verschiedenen Systemen arbeitet und auf der Live-Umgebung das Logging lieber ausgeschaltet haben möchte.

Ich habs jetzt mal eingebaut und es scheint ganz gut zu funktionieren. Das Einzige, wo ich noch etwas unsicher bin ist die Performance unter abgeschalteten Logging auf dem Live-System, da ich mir nicht sicher bin, ob es nicht schlauer wäre, die console.log-Aufrufe beim Build/Deploy einfach rauszufiltern, denn damit würde man sich den vielfachen Aufruf des Wrappers sparen. Meinungen welcome…

Hier nochmal der Link zum Script: http://fragged.org/creating-a-wrapper-for-the-firebug-consolelog-function-for-ie-and-other-browsers_218.html

Parsen mit dem sfFeed2Plugin

In PHP gibt es schon diverse vorgefertigte Klassen, die einem das Aggregieren und  Parsen von Feeds erleichtern. Zuletzt habe ich die Klassen von SimplePie benutzt. Leider sind die in PHP4 geschrieben, was im ersten Moment nicht stört, auf den zweiten Blick aber einige Probleme mit sich bringt. So hängt sich beispielsweise immer wieder unser Testing-Server auf, sobald man aus den Tests die Methoden aufruft, die mit den SimplePie-Methoden agieren. Zudem wird wohl SimplePie tatsächlich jetzt auch nicht mehr weiter entwickelt.

Als Alternative versuche ich mich nun gerade mit dem sfFeed2Plugin und wundere mich ein wenig, dass ich es nicht im ersten Anlauf auch schon benutzt habe. Warscheinlich war uns damals nicht aufgefallen, dass es auch parsen kann und nicht nur neue Feeds zusammenbaut. Das Plugin stellt neben dem Parsen alle Funktionen zur Verfügung, die man benötigt, um mit den empfangenen Daten weiterzuarbeiten. Einzige Vorraussetzung ist die Installation des sfWebBrowser-Plugin, welches das Plugin für den Request auf die zu parsende Seite benutzt.

Im Vergleich zu den Zend-Klassen hat es zudem den Vorteil, dass es dem Plugin egal zu sein scheint, ob es einen Atom- oder Rss-Feed bekommt. Das ist natürlich ein großer Vorteil, denn ich muss darum nicht mehr kümmern und irgendwelche Wrapper oder sowas schreiben.

Was allerdings passiert, wenn ich das Plugin z.B. um die Atom-Activity-Extension erweitern möchte, ist noch fraglich. Die Zeit wirds zeigen. Von den drei bisher verglichenen Möglichkeiten von Feed-Parsern: Simple Pie, Zend und sfFeed2Plugin bin ich bisher am glücklichsten mit dem Symfony-Plugin.