Das Zend-Framework 2.0 Kochbuch
Das Zend Framework in Version 2.0 ist noch nicht einmal erschienen, da beginnen bereits die ersten Bücher in Planung zu gehen. Eines davon ist von Nick Belhomme. Er plant das “Zend Framework 2.0 Cookbook“. Nach seiner Aussage arbeitet er mit einigen Entwicklern des Zend Framework 2.0 gemeinsam daran. Wollen wir hoffen, dass aus dieser Ankündigung nicht nur warme Luft wird. Viele hatten schon das Vorhaben ein Buch zu präsentieren und sind dann in der Umsetzung gescheitert.
Eine andere Planung geht von Ralf Eggert aus, der dann doch eher in der deutschen Sprache bleibt mit seinem “Zend Framework Buch“.
An Literatur zum Zend Framework im Allgemeinen mangelt es jedoch auch ohne die Bücherschreiber nicht. Es gibt etliche Blogs und Foren in denen man Informationen in Hülle und Fülle findet. Natürlich nicht so nett aufbereitet.
Ich jedenfalls werde nicht wieder zu einem Buch greifen. Das einzige Zend Framework Buch in meinem Eigentum ist jenes von Galileo Computing. Eines habe ich aus dem Erwerb des Buches gelernt: “Kein Buch ist so aktuell wie das Internet”. Gerade im Bereich eines Frameworks, das sich so schnell entwickelt, ist es unnütz sich ein Buch zu kaufen. Die Informationen darin sind garantiert schon veraltet.
Meine Empfehlung daher bleibt: “Google ist der Freund und Helfer, denn es findet zu fast jedem Problem einen Hinweis”.
Widgets über ActionHelper
Nach dem Artikel “Ein Widget-System” auf meinem Blog wurde mir zugetragen, dass Matthew Weier O’Phinney ebenso ein Konzept für Widgets vorgetragen hat. Seines jedoch basiert auf Action Helpern.
Übersetzung ohne ViewHelper
Jeder, der mit Übersetzungen, im Zend Framework arbeitet kennt es. Das lange ungetüm, das es braucht um einen einzelnen String im View zu übersetzen. Dafür gibt es aber eine Lösung, eine Kurzfassung, die ich hier vorstellen will. Das Zend Framework bietet einem Filter für den View. Filter, die nach dem Rendern eines Views ausgeführt werden und zum Ziel haben die Ausgabe im Nachhinein zu verändern. Einen solchen Filter stelle ich hier nun zur Verfügung.
Translate Resource
Oftmals wird hier im Blog das Thema Zend_Translate angesprochen. Die bisherigen Themen dazu sind aber leider entsprechend veraltet und so soll hier auch in diesem Bereich etwas Moderne den Einzug halten. Ich habe für mein kleines Projekt eine eigene Translate Resource mit Modulfähigkeit geschrieben. Im Folgenden will ich ein kurzes Beispiel zur Verwendung der Resource bringen. Es ist dabei unbedingt zu beachten, dass ich in dieser einfachen Version der Resource auf Exceptions verzichtet habe. Diese werden im Laufe der Zeit noch dazu kommen, ebenso wie die nötige Cache Funktionalität. Mein Beispiel basiert auf TMX Dateien, welche ich persönlich empfehle, da sie XML Dateien sind und somit leicht über ein entsprechendes Frontend zu bearbeiten sind. Dieses kann sich zum Beispiel im Adminbereich einer Website finden.
Nun beginnen wir.
Ich will im View einen String ausgeben. Natürlich verwende ich dafür den entsprechenden ViewHelper. Wenn man dies jedoch einbaut, dann wird man feststellen, dass es keine Übersetzung gibt, sondern der String an sich ausgegeben wird.
< ?php echo $this->translate('testMessage'); ?>
Um nun der Applikation die Mehrsprachigkeit hinzuzufügen braucht es einige erst einmal der Resource, die sich am Ende dieses Artikels findet. Ich gehe davon aus, dass hier ein Basiswissen Resourcen besteht und man weiß, wie man sie einbindet. Um die Resource zu aktivieren und zu konfigurieren braucht es in der Konfigurationsdatei der Applikation, bei mir die application.php, einiger Variablen.
Ein Widget-System
Ein Widget-System wirft zu vorderst die Frage auf: “Hä? Wozu? Was ist das”, doch dahinter verbirgt sich eine einfache Logik. Das Zend Framework bietet bereits Action- und ViewHelper, die natürlich in ihren jeweiligen Bereichen sehr praktisch sind. Wenn es aber an ein CMS-System geht in dem man den Usern die Möglichkeit bieten möchte ebenso Helper in die Seiten einzubinden, dann kann man ihnen unmöglich erlauben einfach auf diese normalen Helper zuzugreifen. Für diesen Fall benötigt man ein eigenständiges System um die Stabilität des Gesamtsystems zu garantieren. Konsistenz ist nur einer der Vorteile, die natürlich wahrlich Subjektiv und Einsatzabhängig sind.
