Aufbauend auf meinem Artikel zum AjaxAction View Helper möchte ich nun mein CacheAction plugin für das Zend Framework vorstellen. Es wird einfach als FrontController Plugin registriert und cacht die Responses von Controlleraktionen.

Soweit noch keine Kunst. Seine ware Stärke spielt das Plugin erst in Verbindung mit dem AjaxAction View Helper aus. Die zwei sind zusammen das dynamische Duo :-)

Das Prinzip ist einfach:
Liegen die Ergebnisse von einer Controlleraktion bereits im Cache vor, so wir der Inhalt ohne Umwege, direkt in das HTML der Hauptseite eingebaut und ausgeliefert. Ist das Ergebnis noch nicht im Cache, wir die Seite unvollständig, aber schnell ausgeliefert und der fehlende Inhalt kommt per AJAX hinterher. (more…)

Bei größeren Webapplikationen kann es immer mal wieder vorkommen, das Inhalte oder ein Teilbereiche einer Webseite nicht spontan verfügbar sind. Ursachen dafür sind oft kalte Caches von Models oder die Latenzen die durch die Kommunikation mit extenen Webservices bedingt sind. Ich war es irgendwann Leid diese Wartezeiten zu einem Problem des Users machen zu müssen und habe einen kleinen View Helper entwickelt, der langlaufende Prozesse loskoppelt und das Ergebnis per AJAX nachliefert.

Im Prinzip wird die Webseite unvollständig an den User übermittelt und dann in seinem Webbrowser fertig gerendert. (more…)

In meinem Web Rocker Showdown zum Thema Zend Framework vs. Ruby On Rails habe ich als PHP-Stack und Applikationsserver den Zend Server Community Edition verwendet. Während des Tests war mir aufgefallen, das der Zend Server CE die Harware nicht voll ausnutzt. Alle 4 CPUs waren nur zu 60% belegt. Dieses Phänomen möchte ich in diesem Artikel genauer untersuchen indem ich den Zend Server CE mit der kommerziellen Version und einem PHP 5.3 aus dem DotDeb-Repository vergleiche. Die Testhardware, das Betriebssystem und die PHP-Applikation sind identisch mit dem vorherigen Showdown. (more…)

User Acceptance Tests (UAT) oder auf Deutsch “Akzeptanztests” sind eine wichtige Komponente in der Testgetriebenen Entwicklung. Bisher kannte ich die üblichen Verdächtigen, also Selenium. Man kann damit komfortabel einen Klickpfad definieren, PHP-Code exportieren und daraus einen Test für PHPUnit erzeugen. Leider benötigen diese Tests immer einen laufenden Seleniumdienst, einen Browser und diesen ganzen Kram. Ich bin eher ein Fan von Testmethoden die headless funktionieren, direkt auf einer Shell. Bei meinem Blick über den Tellerrand in Richtung Ruby On Rails bin ich auf Cucumber aufmerksam geworden. Cucumber ist ein tolles Test-Framework für Behaviour Driven Development, das mit menschenlesbaren Tests im Klartext arbeitet. Zusammen mit Webrat, einem Toolkit um Webbrowser fernzusteuern oder mit Mechanize komplett headless zu arbeiten, kann man Webapplikationen hervorragend testen.

Am Beispiel der Google-Suche werde ich zeigen, wie einfach man Tests mit Cucumber anlegen kann und das Testen damit wirklich Spaß macht :-) (more…)