Zend Framework > Image ViewHelper

Warum gibt es für das Zend Framework eigentlich keinen ViewHelper zur Generierung von img-Tags?
Die Frage kann ich leider nicht beantworten, aber ich habe mir mal die Mühe gemacht, und einen entsprechenden ViewHelper geschrieben.

Diesen gibt es hier zum Download.

Und wo wir gerade beim Thema sind, kann ich auch gleich erklären, wie man eigene ViewHelper in seine Anwendungen implementieren kann. Dazu legen wir in unserer Anwendung zunächst einen neuen Ordner an (z.B. application/MyApp/Helper/View/ oder /application/MyApp/ViewHelper/ oder etwas vergleichbares). Anschließend erstellen wir eine neue Klassen-Datei für die Logik des ViewHelpers. Nehmen wir als Beispiel einen ViewHelper, der aus einem Unix-Timestamp ein lesbares Datum macht.

// Der Klassenname sollte natürlich eurer Ordnerstruktur entsprechen.
class MyApp_ViewHelper_FormatDate extends Zend_View_Helper_Abstract
{
	public function formatDate($date, $part = Zend_Date::DATETIME_MEDIUM)
	{
		$date = new Zend_Date($date, Zend_Date::TIMESTAMP);
		return $date->get($part);
	}
}

Jetzt haben die Logik schonmal fertig, aber woher weiß das Zend Framework, welche Klasser es aufrufen soll, wenn wir in unserem View-Script (Template) folgenden Aufruf starten?

Hallo Besucher,<br/>
heute ist <?php echo $this->formatDate(time()) ?>.<br/>
Viel Spaß auf unserer Webseite.

Um unseren ViewHelper beim Zend Framework anzumelden, gibt es zwei Möglichkeiten. Ich empfehle die erste Möglichkeit. Die ist meiner Meinung nach etwas sauberer.

Möglichkeit #1: Konfiguration
Wer eine globale Konfigurationsdatei (z.B. als .ini-Datei) verwendet, registriert den ViewHelper am besten so:

resources.view.helperPath.MyApp_ViewHelper = "/application/MyApp/ViewHelper/"

Pfad und Klassen-Prefix muss natürlich vorher angepasst werden.

Möglichkeit #2: Direkter Aufruf
Etwas ungeschickt, aber wer keine andere Wahl hat, kann ViewHelper mit folgendem Funktionsaufruf registrieren (am besten an einer globalen Stelle im Code):

$view->addHelperPath('MyApp/ViewHelper/', 'MyApp_ViewHelper');

Und jetzt lassen sich munter neuer ViewHelper anlegen. Das Zend Framework erkennt inzwischen alle Klassen, die im Verzeichnis /MyApp/ViewHelper/ liegen.

Widgets mit dem Zend Framework

Der letzte Artikel ist ja schon etwas länger her und deshalb gibt es als Ausgleich mal wieder einen längeren Artikel.
Es geht darum, wie man sinnvoll ein Widget-Aufbau für das Zend Framework umsetzen kann. Mein Ansatz ist sicherlich nicht
perfekt, aber ein guter Anfang.

Vorausgesetzt wird auch dieses mal wieder eine lauffähige ZF-Anwendung mit Bootstrap-Klasse.

» Weiterlesen

Zend Framework > Performance > Zend_Cache > Konfiguration

Das Zend Framework ist dafür bekannt, ziemlich viel Performance zu verschlucken. Ist auch kein Wunder bei so viel Objektorientierung…
Damit man sich ein wenig von der Performance zurückholen kann, gibt es einige Standard-Cache-Funktionen, die relativ einfach ohne großen Aufwand einzubauen sind. Standardmäßig können die Module Zend_Locale, Zend_Translate und Zend_Db_Table den Cache nutzen. Wie man die Anwendung entsprechend konfiguriert, wird in diesem kleinen How-To erklärt.
Beachte: Dies ist lediglich eine Standard-Konfiguration für das Caching mit normalen Dateien (File-Backend).

» Weiterlesen