Jon-G blogs for Net-Entwicklung.de

21.05.2009

Das Model im Zend Framework

Filed under: Coding — Schlagwörter: , — Jonathan Gilbert @ 21:01

Holger Librenz hat ein netter Artikelzum Thema geschrieben. Den Ansatz, eine eigene Action-Klasse vom Zend_Controller_Action abzuleiten kann ich nur unterstützen. Aber ich halte nichts von der Idee, das Model per Reflection zu ermitteln und instanziieren – Refelection ist nicht performant und demnach für eine Produktionsumgebung nicht geeignet. Die Prüfung, ob die Klasse existiert ist m.E. auch überflüssig und kostet unnötig Performance – wer eine Anwendung baut hat dafür zu sorgen, dass die Klassen vorhanden sind. Ich finde, es gibt nur wenige Fälle, wo eine solche Prüfung stattfinden muss (z.B. in verteilten Systemen).

Im Übrigen vertrete ich auch der Meinung, dass Objekte nicht instanziiert werden müssen – Modelle mit statischen Methoden sind nach Möglichkeit zu bevorzugen – aber das ist ein anderes Thema.

18.05.2009

Zend Framework MVC mit Javascript (z.B. YUI) steuern

Filed under: Coding — Schlagwörter: , , , — Jonathan Gilbert @ 19:57

Mit dem Zend Framework hat man meistens URLs im Format:

http://www.net-entwicklung.de/controller/action

wobei „action“ oft weggelassen wird, um eine Standard-Action für den Controller aufzurufen. Es kommt also hin und wieder vor, dass man auf den einzelnen Unterseiten z.B. ein „Back“-Link erstellen möchte. Das ist kein Problem mit dem Viewhelper aber es ist etwas umständlich, wenn z.B. YUI verwendet wird und es soll ein „Back“-Button damit definiert werden. Vor allem, wenn dieser Button auf mehreren Seiten erscheinen soll stellt man sich die Frage, wie die aufzurufende URL generisch manipuliert werden kann. Eine Möglichkeit ist mit einem Regular Expression, um alles nach dem letzten Slash der URL zu entfernen:

window.location.href = document.location.href.replace(/(.*)\/([^\/]*)$/, '$1');

Das wird natürlich nicht für jeden Anwendungsfall passen aber wenn die URL’s der Unterseiten keine Parameter benutzen, z.B. weil die Inhalte per Ajax (YUI o.ä.) geladen werden, dann sollte es genügen.

25.04.2009

Zend Framework und Performance

Filed under: Coding — Schlagwörter: , , , — Jonathan Gilbert @ 19:00

Es gibt viele Frameworks für PHP – es gibt einige Gründe, die für ZF sprechen: Es ist gut dokumentiert, gut getestet und es steht nun mal Zend dahinter. Nur Performance ist nicht optimal… Je nach Bedarf kann es sich lohnen, ein eigenes Framework zu entwickeln – es kostet aber viel Zeit und muss auch ständig weiterentwickelt werden (bei StudiVZ hat es sich aber gelohnt – das Phoenix Framework rockt – schöne Grüße nach Berlin!)

Ein erster Schritt ist, den Zend_Loader zu ersetzen – keep it simple! Einfaches autoloading mit str_replace, um die Pfade zu ermitteln reicht aus.

Gut strukturierter, lesbarer, erweiterbarer und dadurch wartbarer Code ist m.E. wichtiger als performanter Code. Performance kann man immer noch verbessern, wo es nötig ist. Oft liegen Performance Probleme anderswo, z.B. bei Datenbankzugriffen – diese bieten oft viel Spielraum für Optimierung. Und mit Caching, lassen sich auch viele DB-Zugriffe insgesamt einsparen.

Hier gibt es ein interessanter Artikel über Performance Bottlenecks.

Mehrere gute Tipps, gibt Till Klampaeckel hier und hier.

Bloggen auf WordPress.com.