Currency Helfer
Das anzeigen von lokalisierten Währungswerten ist eine übliche Aufgabe; der View Helfer
Zend_Currency dient dazu diese Aufgabe zu vereinfachen. Siehe auch
die Dokumentation von Zend_Currency für
Details über dieses Lokalisierungs-Feature. In diesem Abschnitt fokusieren wir uns nur auf
die Verwendung des View Helfers.
Es gibt verschiedene Wege um den Currency View Helfer zu initiieren:
Registriert, über eine vorher in Zend_Registry registrierte
Instanz:
Im Nachhinein, über das Fluent Interface.
Direkt, über Instanzierung der Klasse.
Eine registrierte Instanz von Zend_Currency ist der vorgeschlagene
Weg für diesen Helfer. Wenn man dies macht kann die Währung welche verwendet werden soll
ausgewählt werden bevor der Adapter der Registry hinzugefügt wird.
Es gibt verschiedene Wege die gewünschte Währung auszuwählen. Erstens kann man einfach einen
Währungs-String übergeben; alternativ kann man ein Gebietsschema spezifizieren. Der
vorgeschlagene Weg ist die Verwendung eines Gebietsschemas, da diese Information automatisch
erkannt und über den HTTP Client Header ausgewählt wird wenn ein Benutzer
auf die Anwendung zugreift. Und es stellt sicher das die angebotene Währung mit seinem
Gebietsschema übereinstimmt.
Wir sprechen von "Gebietsschemas" statt von "Sprachen" weil Sprachen, basierend auf der
geographischen Region in welcher Sie verwendet werden, sehr unterschiedlich sein können.
Zum Beispiel wird Englisch in unterschiedlichen Dialekten gesprochen: Brittisches
Englisch, Amerikanisches Englisch, usw. Da eine Währung immer mit einem Land
korreliert muss ein voll-qualifiziertes Gebietsschema angegeben werden. Dies bedeutet
dass beides, sowohl die Sprache als auch die Region angegeben
werden müssen. Deswegen sagen wir "Gebietsschema" statt "Sprache".
Registrierte Instanz
Um eine registrierte Instanz zu verwenden muss einfach eine Instanz von
Zend_Currency erstellt und in
Zend_Registry registriert werden, wobei der Schlüssel
Zend_Currency zu verwenden ist.
currency(1234.56);
// Gibt '€ 1.234,56' zurück
]]>
Wenn man das Fluent Interface verwenden will, kann man auch eine Instanz in der View
erstellen und den Helfer im Nachhinein konfigurieren.
In der View
Um das Fluent Interface zu verwenden muss eine Instanz von
Zend_Currency erstellt, der Helfer ohne Parameter aufgerufen, und
dann die Methode setCurrency() aufgerufen werden.
currency()->setCurrency($currency)->currency(1234.56);
// Gibt '€ 1.234,56' zurück
]]>
Wenn man den Helfer ohne Zend_View verwenden will kann man Ihn auch
direkt verwenden.
Direkte Verwendungcurrency(1234.56); // Gibt '€ 1.234,56' zurück
]]>
Wie bereits gesehen wird die Methode currency() verwendet um den
Währungs-String zurückzugeben. Sie muss nur mit dem Wert aufgerufen werden den man als
Währung angezeigt haben will. Sie akzeptiert auch einige Optionen welche verwendet werden
können um das Verhalten des Helfers bei der Ausgabe zu ändern.
Direkte Verwendungcurrency(1234.56); // Gibt '€ 1.234,56' zurück
echo $helper->currency(1234.56, array('precision' => 1));
// Gibt '€ 1.234,6' zurück
]]>
Für Details über die vorhandenen Optionen sollte man in
Zend_Currency's toCurrency() Methode
nachsehen.