24. Oktober 2007
Ein sehr interessantes Projekt: eine Firefox-FireBug-Erweiterung zum debuggen von Serverseitigem PHP-Code. Wie das funktioniert? Man included Scriptseitig eine PEAR-Erweiterung, clientseitig ein Firefoxaddon. Neben den Standard-Server-Variablen kann man auch eigene Variablen und Zustände überwachen, man integriert einfach ein FirePHP::SetVariable(true,'VariableName','VariableValue'); in die Anwendung bzw. die eigenen Debughandler. (endlich gibt es echos, die das Design nicht zerschießen ;o)

23. Oktober 2007
Die Jungs von 1&1 hatten eine gute Idee, um unnötige Filesystemzugriffe beim include zu umgehen: ihr Framework stubbles nutzt einen stream wrapper, um mit einer einzigen includedatei alle Klassen nachzuladen.
Das funktioniert ungefähr so:
- alle Klassen befinden sich in einer einzigen (riesigen) Datei
- von dieser wird nach dem require nur der Beginn (bis ‘__halt_compiler()’) eingelesen
- dieser enthält den Wrapper und den Manager zum ‘Nachladen’ benötigter Klassen
- fseek positioniert den Zeiger innerhalb des eigenen Wrappers
- include und require nutzen den Wrapper
- erst nach dem ‘Nachladen’ wird die Klasse geparced
Klingt kompliziert? Ist es auch. Aber man umgeht folgendes Dilemma:
- Nutzt man __autoload(); gibt es bei jeder neuen Klasse einen Aufruf im Filesystem
- Nutzt man ein einziges include (großes File mit allen Klassen) werden alle Klassen sofort geparced und kompiliert, erst danach beginnt die Scriptausführung
Ob und wieviel Laufzeit dies spart, habe ich noch nicht getestet, aber die Idee klingt recht vielversprechend!
So, wer jetzt neugierig geworden ist, sollte sich die Datei /lib/stubbles.php im Framework zu Gemüte führen, dann werden meine Ausführungen ja vieleicht klarer ;o)
22. Oktober 2007
Nach einem Tipp von unserem neuen Kollegen beim PUNKT habe ich mir privat einmal die Komodo-IDE zu Gemüte geführt. Ich muß sagen: ich bin echt begeistert! Obwohl ich seit Jahren recht regelmäßig Eclipse und die Zend-IDE getestet (und alsbald wieder deinstalliert) habe, könnte ich bei Komodo wirklich hängen bleiben: gutes Syntaxhighlighting für PHP und HTML, Syntax checks im Hintergrund (nie wieder vergessen Semikolons *jippee*), schnelle(!!) Tooltips auch für eigene Klassen, Codefaltung usw. das ganze auch schnell und ohne strenge Vorgaben an die Projektstruktur. Diese IDE könnte auf dauer echt Zeit sparen, was Eclipse und ZEND zumindest für meine Projekte nicht schaffen.