|
|
@@ -1,598 +1,101 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!-- EN-Revision: 19150 -->
|
|
|
-<!-- Reviewed: 19150 -->
|
|
|
+<!-- EN-Revision: 20100 -->
|
|
|
+<!-- Reviewed: no -->
|
|
|
<sect1 id="zend.currency.usage">
|
|
|
- <title>Arbeiten mit Währungen</title>
|
|
|
+ <title>Zend_Currency verwenden</title>
|
|
|
|
|
|
- <para>
|
|
|
- Um <classname>Zend_Currency</classname> in einer Anwendung zu verwenden, muss nur eine
|
|
|
- Instanz davon erstellt werden, ohne das Parameter angegeben werden. Das erstellt eine
|
|
|
- Instanz von <classname>Zend_Currency</classname> mit deinem Gebietsschema, und definiert die
|
|
|
- Währung, die aktuell in diesem Gebietsschema verwendet wird.
|
|
|
- </para>
|
|
|
-
|
|
|
- <example id="zend.currency.usage.example1">
|
|
|
- <title>Eine Instanz von Zend_Currency anhand des Gebietsschemas erstellen</title>
|
|
|
+ <sect2 id="zend.currency.usage.generic">
|
|
|
+ <title>Generelle Verwendung</title>
|
|
|
|
|
|
<para>
|
|
|
- Angenommen 'en_US' ist, durch die Umgebung des Benutzers, als aktuelles Gebietsschema
|
|
|
- gesetzt. Durch die fehlende Angabe von Parametern wärend der Erstellung der Instanz wird
|
|
|
- <classname>Zend_Currency</classname> mitgeteilt, dass es die aktuelle Währung des
|
|
|
- Gebietsschemas 'en_US' verwenden soll. Das führt zu einer Instanz mit US Dollar als
|
|
|
- aktueller Währung mit den Formatierungsregeln von 'en_US'.
|
|
|
+ Der einfachste Anwendungsfall in einer Anwendung ist die Verwendung des Gebietsschemas
|
|
|
+ des Clients. Wenn man eine Instanz von <classname>Zend_Currency</classname> erstellt
|
|
|
+ ohne eine Option anzugeben, wird das Gebietsschema des Clients verwendet um die richtige
|
|
|
+ Währung zu setzen.
|
|
|
</para>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
-$currency = new Zend_Currency();
|
|
|
-]]></programlisting>
|
|
|
- </example>
|
|
|
-
|
|
|
- <para>
|
|
|
- <classname>Zend_Currency</classname> unterstützt auch die Verwendung eines
|
|
|
- anwendungsweiten Gebietsschemas. Man kann eine Instanz von
|
|
|
- <classname>Zend_Locale</classname> in der Registry wie unten gezeigt setzen. Mit dieser
|
|
|
- Schreibweise kann man verhindern, dass Gebietsschematas mit jeder Instanz gesetzt werden
|
|
|
- müssen, wenn man das gleiche Gebietsschema in der gesamten Anwendung verwenden will.
|
|
|
- </para>
|
|
|
+ <example id="zend.currency.usage.generic.example-1">
|
|
|
+ <title>Erstellung einer Währung mit Client Einstellungen</title>
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
-// In der Bootstrap Datei
|
|
|
-$locale = new Zend_Locale('de_AT');
|
|
|
-Zend_Registry::set('Zend_Locale', $locale);
|
|
|
+ <para>
|
|
|
+ Angenommen unser Client hat "en_US" als gewünschte Sprache in seinem Browser
|
|
|
+ gesetzt. In diesem Fall wird <classname>Zend_Currency</classname> die Währung welche
|
|
|
+ zu verwenden automatisch erkannt.
|
|
|
+ </para>
|
|
|
|
|
|
-// Irgendwo in der Anwendung
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
$currency = new Zend_Currency();
|
|
|
-]]></programlisting>
|
|
|
|
|
|
- <note>
|
|
|
- <para>
|
|
|
- Wenn das eigene System kein standardmäßiges Gebietsschema hat, oder das
|
|
|
- Gebietsschema des eigenen Systems nicht automatisch eruiert werden kann, wird
|
|
|
- <classname>Zend_Currency</classname> eine Ausnahme werfen. Wenn dieses Verhalten
|
|
|
- auftritt, sollte man daran denken das Gebietsschema per Hand zu setzen.
|
|
|
- </para>
|
|
|
- </note>
|
|
|
-
|
|
|
- <para>
|
|
|
- Abhängig von den eigenen Bedürfnissen, können verschiedene Parameter bei der Instanzierung
|
|
|
- angegeben werden. Jeder dieser Parameter ist optional und kann unterdrückt werden. Selbst
|
|
|
- die Reihenfolge dieser Parameter kann gewechselt werden. Die Bedeutung dieser Parmeter wird
|
|
|
- in der folgenden Liste beschrieben:
|
|
|
- </para>
|
|
|
+// Siehe die Standardwerte welche vom Client abhängen
|
|
|
+// var_dump($currency);
|
|
|
+]]></programlisting>
|
|
|
|
|
|
- <itemizedlist mark='opencircle'>
|
|
|
- <listitem>
|
|
|
<para>
|
|
|
- <emphasis>currency</emphasis>:
|
|
|
+ Das erstellte Objekt würde jetzt die Währung "US Dollar" enthalten da dies die
|
|
|
+ aktuell zugeordnete Währung für US (Vereinigte Staaten) ist. Es wurden auch andere
|
|
|
+ Optionen gesetzt wie "$" für das Währungszeichen oder "USD" für die Abkürzung.
|
|
|
</para>
|
|
|
+ </example>
|
|
|
|
|
|
- <para>
|
|
|
- Ein Gebietsschema kann verschiedene Währungen beinhalten. Deshalb kann der erste
|
|
|
- Parameter <emphasis>'currency'</emphasis> definieren welche Währung verwendet werden
|
|
|
- soll, indem der Kurzname oder der komplette Name dieser Währung angegeben wird. Wenn
|
|
|
- die angegebene Währung in keinem Gebietsschema erkannt wird, wird eine Ausnahme
|
|
|
- geworfen. Kurznamen von Währungen bestehen immer aus 3 Buchstaben und sind groß
|
|
|
- geschrieben. Bekannte Kurznamen von Währungen sind zum Beispiel
|
|
|
- <acronym>USD</acronym> oder <acronym>EUR</acronym>.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
+ <note>
|
|
|
+ <title>Die automatische Erkennung des Gebietsschemas funktioniert nicht immer</title>
|
|
|
|
|
|
- <listitem>
|
|
|
<para>
|
|
|
- <emphasis>locale</emphasis>:
|
|
|
+ Es ist zu beachten das die automatische Erkennung des Gebietsschemas nicht immer
|
|
|
+ richtig funktioniert. Der Grund für dieses Verhalten liegt darin das
|
|
|
+ <classname>Zend_Currency</classname> ein Gebietsschema benötigt welches eine Region
|
|
|
+ enthält. Wenn der Client nur "en" als Gebietsschema setzt würde
|
|
|
+ <classname>Zend_Currency</classname> nicht mehr wissen welches der mehr als 30
|
|
|
+ Länder gemeint ist. In diesem Fall wird eine Exception geworfen.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Der <emphasis>'locale'</emphasis> Parameter definiert, welches
|
|
|
- Gebietsschema für die Formatierung der Währung verwendet werden soll. Das
|
|
|
- spezifizierte Gebietsschema wird auch verwendet, um die Schreibweise und das Symbol
|
|
|
- für diese Währung zu erhalten, wenn diese Parameter nicht angegeben werden.
|
|
|
+ Ein Client könnte die Einstellungen des Gebietsschemas in seinem Browser auch
|
|
|
+ unterdrücken. Das würde zum Problem führen dass die Einstellungen der eigenen
|
|
|
+ Umgebung als Fallback verwendet werden und dies könnte auch zu einer Exception
|
|
|
+ führen.
|
|
|
</para>
|
|
|
-
|
|
|
- <note>
|
|
|
- <para>
|
|
|
- Es gilt zu Beachten das <classname>Zend_Currency</classname> nur Gebietsschema
|
|
|
- akzeptiert, die eine Region beinhalten. Das bedeutet, dass alle angegebenen
|
|
|
- Gebietsschemata, die nur eine Sprache beinhalten, zu einer Ausnahme führen. Zum
|
|
|
- Beispiel wird das Gebietsschema <emphasis>en</emphasis> zu einer Ausnahme
|
|
|
- führen, aber das Gebietsschema <emphasis>en_US</emphasis> wird als Währung
|
|
|
- <acronym>USD</acronym> zurückgeben.
|
|
|
- </para>
|
|
|
- </note>
|
|
|
- </listitem>
|
|
|
- </itemizedlist>
|
|
|
-
|
|
|
- <example id="zend.currency.usage.example2">
|
|
|
- <title>Andere Wege für die Erstellung einer Instanz von Zend_Currency</title>
|
|
|
-
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
-// Wir nehmen das Standardgebietsschema 'de_AT' an
|
|
|
-
|
|
|
-// Erstellt eine Instanz von from 'en_US' und verwendet
|
|
|
-// 'USD' welches die Standardwert von 'en_US' ist
|
|
|
-$currency = new Zend_Currency('en_US');
|
|
|
-
|
|
|
-// Erstellt eine Instanz vom aktuellen Gebietsschema
|
|
|
-// ('de_AT') und verwendet 'EUR' als Währung
|
|
|
-$currency = new Zend_Currency();
|
|
|
-
|
|
|
-// Erstellt eine Instanz und verwendet 'EUR' als Währung,
|
|
|
-// 'en_US' für die Formatierung der Ziffern
|
|
|
-$currency = new Zend_Currency('en_US', 'EUR');
|
|
|
-]]></programlisting>
|
|
|
- </example>
|
|
|
-
|
|
|
- <para>
|
|
|
- Es können also alle diese Parameter bei <classname>Zend_Currency</classname>'s Constructor
|
|
|
- unterdrückt werden wenn man die Standardwerte verwenden will. Das hat keine negativen
|
|
|
- Effekte bei der Handhabung von Währungen. Es kann aber nützlich sein, wenn man zum Beispiel
|
|
|
- die Standardwährung einer Region nicht weiß.
|
|
|
- </para>
|
|
|
-
|
|
|
- <note>
|
|
|
- <para>
|
|
|
- Für viele Länder gibt es verschiedene bekannte Währungen. Typischerweise wird eine
|
|
|
- Währung immer gerade aktuell verwendet und es gibt eventuell noch alte Währungen. Wenn
|
|
|
- der '<emphasis>currency</emphasis>' Parameter unterdrückt wird, wird immer die aktuelle
|
|
|
- Währung verwendet. Die Region '<emphasis>de</emphasis>' zum Beispiel kennt die
|
|
|
- Währungen '<acronym>EUR</acronym>' und '<acronym>DEM</acronym>'...
|
|
|
- '<acronym>EUR</acronym>' ist die aktuell verwendete Währung und wird verwendet, wenn der
|
|
|
- Parameter unterdrückt wird.
|
|
|
- </para>
|
|
|
- </note>
|
|
|
-
|
|
|
- <sect2 id="zend.currency.usage.tocurrency">
|
|
|
- <title>Eine Ausgabe von einer Währung erstellen</title>
|
|
|
-
|
|
|
- <para>
|
|
|
- Um einen numerischen Wert in einen formatierten String für die aktuelle Währung zu
|
|
|
- konvertieren, muss man die Methode <methodname>toCurrency()</methodname> verwenden. Sie
|
|
|
- nimmt einen Wert, der konvertiert werden soll. Der Wert selbst kann jede normalisierte
|
|
|
- Zahl sein.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Wenn man nur eine lokalisierte Zahl hat, muss diese zunächst mit
|
|
|
- <link linkend="zend.locale.number.normalize">Zend_Locale_Format::getNumber()</link>
|
|
|
- in einen normalisierte Zahl konvertiert werden. Anschließend kann sie mit
|
|
|
- <methodname>toCurrency()</methodname> verwendet werden, um eine Ausgabe einer Währung zu
|
|
|
- erstellen.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- <methodname>toCurrency(array $options)</methodname> akzeptiert ein Array mit Optionen,
|
|
|
- welche gesetzt werden können, um temporär ein Format oder eine Darstellung einer Währung
|
|
|
- festzulegen. Für Details darüber, welche Optionen gesetzt werden können, siehe
|
|
|
- <link linkend="zend.currency.usage.setformat">Ändern des Formats einer Währung</link>.
|
|
|
- </para>
|
|
|
-
|
|
|
- <example id="zend.currency.usage.tocurrency.example">
|
|
|
- <title>Erstellung und Ausgabe eines Strings einer Währung</title>
|
|
|
-
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
-// Erstellt eine Instanz mit 'en_US' und verwendet 'USD'
|
|
|
-// welches die Standardwerte von 'en_US' sind
|
|
|
-$currency = new Zend_Currency('en_US');
|
|
|
-
|
|
|
-// Gibt '$ 1,000.00' aus
|
|
|
-echo $currency->toCurrency(1000);
|
|
|
-
|
|
|
-// Gibt '$ 1.000,00' aus
|
|
|
-echo $currency->toCurrency(1000, array('format' => 'de_AT'));
|
|
|
-
|
|
|
-// Gibt '$ ١٬٠٠٠٫٠٠' aus
|
|
|
-echo $currency->toCurrency(1000, array('script' => 'Arab'));
|
|
|
-]]></programlisting>
|
|
|
- </example>
|
|
|
+ </note>
|
|
|
</sect2>
|
|
|
|
|
|
- <sect2 id="zend.currency.usage.setformat">
|
|
|
- <title>Das Format einer Währung ändern</title>
|
|
|
-
|
|
|
- <para>
|
|
|
- Das Format, welches bei der Erstellung der <classname>Zend_Currency</classname> Instanz
|
|
|
- angegeben wurde, ist natürlich das Standardformat. Aber manchmal ist es nützlich dieses
|
|
|
- Format anzupassen.
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Das Format einer Währung enthält die folgenden Teile:
|
|
|
- </para>
|
|
|
-
|
|
|
- <itemizedlist mark='opencircle'>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>Symbol, Kurzname oder Name der Währung</emphasis>:
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Das Symbol der Währung wird normalerweise bei der Ausgabe eines Währungsstrings
|
|
|
- angezeigt. Es kann unterdrückt oder sogar überschrieben werden, wenn das
|
|
|
- notwendig ist.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>Position der Währung</emphasis>:
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Die Position des Währungssymbols ist normalerweise automatisch durch das
|
|
|
- Gebietsschema definiert. Es kann geändert werden, wenn das notwendig ist.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>Script</emphasis>:
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Die Schreibweise, welche zur Anzeige von Ziffern verwendet werden soll.
|
|
|
- Detaillierte Informationen über Schreibweisen und deren Verwendung kann in der
|
|
|
- Dokumentation von <classname>Zend_Locale</classname> im Kapitel <link
|
|
|
- linkend="zend.locale.numbersystems">Nummerische Konvertierung von
|
|
|
- Zahlen</link> gefunden werden.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>Zahlenformat</emphasis>:
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Der Wert der Währung (üblicherweise bekannt als Geldwert) wird durch die
|
|
|
- Verwendung der Formatierungsregeln des Gebietsschemas formatiert. Zum Beispiel
|
|
|
- wird im Englischen das ',' Zeichen als Separator für Tausender verwendet,
|
|
|
- während im Deutschen das '.' Zeichen verwendet wird.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- </itemizedlist>
|
|
|
+ <sect2 id="zend.currency.usage.locale">
|
|
|
+ <title>Erstellung einer Währung basierend auf einem Gebietsschema</title>
|
|
|
|
|
|
<para>
|
|
|
- Wenn man also das Format ändern muss, kann die Methode
|
|
|
- <methodname>setFormat()</methodname> verwendet werden. Diese akzeptiert ein Array,
|
|
|
- welches alle zu ändernden Optionen enthält. Das <varname>$options</varname> Array
|
|
|
- unterstützt die folgenden Einstellungen:
|
|
|
+ Um diese Probleme mit dem Client zu vermeiden kann man das gewünschte Gebietsschema
|
|
|
+ einfach manuell setzen.
|
|
|
</para>
|
|
|
|
|
|
- <itemizedlist mark='opencircle'>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>position</emphasis>: Definiert die Position, an der die Beschreibung
|
|
|
- der Währung angezeigt werden soll. Die unterstützten Positionen können in
|
|
|
- <link linkend="zend.currency.usage.setformat.constantsposition">dieser
|
|
|
- Tabelle</link> gefunden werden.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>script</emphasis>: Definiert welche Schreibweise für die Anzeige
|
|
|
- von Ziffern verwendet werden soll. Die Standardschreibweise der meisten
|
|
|
- Gebietsschemata ist <emphasis>'Latn'</emphasis>, welches die Ziffern 0 bis 9
|
|
|
- enthält. Aber auch andere Schreibweisen wie 'Arab' (Arabisch) können verwendet
|
|
|
- werden.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>format</emphasis>: Definiert das Format, welches zur Darstellung von
|
|
|
- Nummern verwendet werden soll. Dieses Nummern-Format enthält zum Beispiel das
|
|
|
- Trennzeichen für Tausender. Man kann entweder ein Standardformat verwenden,
|
|
|
- indem ein Identifikator für ein Gebietsschema angegeben wird, oder das
|
|
|
- Nummern-Format manuell definieren. Wenn kein Format gesetzt wurde, wird das
|
|
|
- Gebietsschema des <classname>Zend_Currency</classname> Objekts verwendet.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>display</emphasis>: Definiert, welcher Teil der Währung zur
|
|
|
- Darstellung der Währung verwendet werden soll. Es gibt 4 Darstellungen welche
|
|
|
- verwendet werden können. Sie werden in
|
|
|
- <link linkend="zend.currency.usage.setformat.constantsdescription">dieser
|
|
|
- Tabelle</link> beschrieben.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>precision</emphasis>: Definiert die Genauigkeit der Darstellung der
|
|
|
- Währung. Der Standardwert ist <emphasis>2</emphasis>.
|
|
|
- <emphasis>2</emphasis>.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>name</emphasis>: Definiert den kompletten angezeigten Namen der
|
|
|
- Währung. Diese Option überschreibt den Namen der Währung, der durch
|
|
|
- die Erstellung von <classname>Zend_Currency</classname> gesetzt wurde.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>currency</emphasis>: Definiert die angezeigte internationale
|
|
|
- Abkürzung. Diese Option überschreibt die Abkürzung, die durch die Erstellung von
|
|
|
- <classname>Zend_Currency</classname> gesetzt wurde.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis>symbol</emphasis>: Definiert das angezeigte Symbol der Währung. Diese
|
|
|
- Option überschreibt das Symbol, welches durch die Erstellung von
|
|
|
- <classname>Zend_Currency</classname> gesetzt wurde.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- </itemizedlist>
|
|
|
-
|
|
|
- <table id="zend.currency.usage.setformat.constantsdescription">
|
|
|
- <title>Konstanten für die Auswahl der Position der Währungs Beschreibung</title>
|
|
|
-
|
|
|
- <tgroup cols="2" align="left">
|
|
|
- <thead>
|
|
|
- <row>
|
|
|
- <entry>Konstante</entry>
|
|
|
- <entry>Beschreibung</entry>
|
|
|
- </row>
|
|
|
- </thead>
|
|
|
-
|
|
|
- <tbody>
|
|
|
- <row>
|
|
|
- <entry><constant>NO_SYMBOL</constant></entry>
|
|
|
- <entry>Keine Repräsentation der Währung anzeigen</entry>
|
|
|
- </row>
|
|
|
-
|
|
|
- <row>
|
|
|
- <entry><constant>USE_SYMBOL</constant></entry>
|
|
|
- <entry>Das Währungssymbol anzeigen</entry>
|
|
|
- </row>
|
|
|
-
|
|
|
- <row>
|
|
|
- <entry><constant>USE_SHORTNAME</constant></entry>
|
|
|
-
|
|
|
- <entry>
|
|
|
- Die internationale Abkürzung der Währung (3 Buchstaben) anzeigen
|
|
|
- </entry>
|
|
|
- </row>
|
|
|
-
|
|
|
- <row>
|
|
|
- <entry><constant>USE_NAME</constant></entry>
|
|
|
- <entry>Den kompletten Währungsnamen anzeigen</entry>
|
|
|
- </row>
|
|
|
- </tbody>
|
|
|
- </tgroup>
|
|
|
- </table>
|
|
|
-
|
|
|
- <table id="zend.currency.usage.setformat.constantsposition">
|
|
|
- <title>Konstanten für die Auswahl der Position der Währung</title>
|
|
|
-
|
|
|
- <tgroup cols="2" align="left">
|
|
|
- <thead>
|
|
|
- <row>
|
|
|
- <entry>Konstante</entry>
|
|
|
- <entry>Beschreibung</entry>
|
|
|
- </row>
|
|
|
- </thead>
|
|
|
-
|
|
|
- <tbody>
|
|
|
- <row>
|
|
|
- <entry><constant>STANDARD</constant></entry>
|
|
|
-
|
|
|
- <entry>
|
|
|
- Setzt die Position auf den Standard wie im Gebietsschema definiert
|
|
|
- </entry>
|
|
|
- </row>
|
|
|
-
|
|
|
- <row>
|
|
|
- <entry><constant>RIGHT</constant></entry>
|
|
|
-
|
|
|
- <entry>
|
|
|
- Die Währung soll rechts vom Werts angezeigt werden
|
|
|
- </entry>
|
|
|
- </row>
|
|
|
-
|
|
|
- <row>
|
|
|
- <entry><constant>LEFT</constant></entry>
|
|
|
- <entry>Die Währung soll links vom Wert angezeigt werden</entry>
|
|
|
- </row>
|
|
|
- </tbody>
|
|
|
- </tgroup>
|
|
|
- </table>
|
|
|
-
|
|
|
- <example id="zend.currency.usage.setformat.example">
|
|
|
- <title>Das Anzeigeformat der Währung ändern</title>
|
|
|
-
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
-// Erstellt eine Instanz mit 'en_US' und verwendet 'USD', 'Latin'
|
|
|
-// und 'en_US' da das die Standardwerte von 'en_US' sind
|
|
|
-$currency = new Zend_Currency('en_US');
|
|
|
-
|
|
|
-// Gibt 'US$ 1,000.00' aus
|
|
|
-echo $currency->toCurrency(1000);
|
|
|
-
|
|
|
-$currency->setFormat(array('display' => Zend_Currency::USE_NAME,
|
|
|
- 'position' => Zend_Currency::RIGHT));
|
|
|
-// Gibt '1.000,00 US Dollar' aus
|
|
|
-echo $currency->toCurrency(1000);
|
|
|
-
|
|
|
-$currency->setFormat(array('name' => 'Amerikanische Dollar'));
|
|
|
-// Gibt '1.000,00 Amerikanische Dollar' aus
|
|
|
-echo $currency->toCurrency(1000);
|
|
|
-
|
|
|
-$currency->setFormat(array('format' => '##0.00'));
|
|
|
-// Gibt '1000,00 Amerikanische Dollar' aus
|
|
|
-echo $currency->toCurrency(1000);
|
|
|
-]]></programlisting>
|
|
|
- </example>
|
|
|
- </sect2>
|
|
|
-
|
|
|
- <sect2 id="zend.currency.usage.informational">
|
|
|
- <title>Referenz Methoden von Zend_Currency</title>
|
|
|
-
|
|
|
- <para>
|
|
|
- Natürlich bietet <classname>Zend_Currency</classname> auch Methoden an um Informationen
|
|
|
- über jede existierende und viele historische Währungen von
|
|
|
- <classname>Zend_Locale</classname> zu bekommen. Die unterstützten Methoden sind:
|
|
|
- </para>
|
|
|
-
|
|
|
- <itemizedlist mark='opencircle'>
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis><methodname>getSymbol()</methodname></emphasis>:
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Gibt das bekannte Symbol der aktuellen oder einer angegebenen Währung zurück.
|
|
|
- Zum Beispiel <emphasis>$</emphasis> für den US Dollar innerhalb des
|
|
|
- Gebietsschemas '<emphasis>en_US</emphasis>'.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis><methodname>getShortName()</methodname></emphasis>:
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Gibt die Abkürzung der aktuellen oder einer angegebenen Währung zurück. Zum
|
|
|
- Beispiel <acronym>USD</acronym> für den US Dollar innerhalb des
|
|
|
- Gebietsschemas '<emphasis>en_US</emphasis>'.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis><methodname>getName()</methodname></emphasis>:
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Gibt den kompletten Namen der aktuellen oder einer angegebenen Währung zurück.
|
|
|
- Zum Beispiel <emphasis>US Dollar</emphasis> für den US Dollar innerhalb des
|
|
|
- Gebietsschemas '<emphasis>en_US</emphasis>'.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis><methodname>getRegionList()</methodname></emphasis>:
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Gibt eine Liste von Regionen zurück, in denen die aktuelle oder eine angegebene
|
|
|
- Währung verwendet wird. Es ist möglich, dass eine Währung in mehreren Regionen
|
|
|
- Verwendung findet, deswegen ist der Rückgabewert immer ein Array.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
-
|
|
|
- <listitem>
|
|
|
- <para>
|
|
|
- <emphasis><methodname>getCurrencyList()</methodname></emphasis>:
|
|
|
- </para>
|
|
|
-
|
|
|
- <para>
|
|
|
- Gibt eine Liste von Währungen zurück, die in einer angegebenen Region verwendet
|
|
|
- werden.
|
|
|
- </para>
|
|
|
- </listitem>
|
|
|
- </itemizedlist>
|
|
|
-
|
|
|
- <para>
|
|
|
- Die Funktion <methodname>getSymbol()</methodname>,
|
|
|
- <methodname>getShortName()</methodname> und <methodname>getName()</methodname>
|
|
|
- akzeptieren zwei optionale Parameter. Wenn kein Parameter angegeben wird, werden die
|
|
|
- Daten von der aktuell gesetzten Währung zurückgegeben. Der erste Parameter akzeptiert
|
|
|
- den Kurznamen der Währung. Kurznamen bestehen immer aus drei Buchstaben, zum Beispiel
|
|
|
- <acronym>EUR</acronym> für Euro oder <acronym>USD</acronym> für US Dollar. Der zweite
|
|
|
- Parameter definiert, von welchem Gebietsschema die Daten gelesen werden sollen. Wenn
|
|
|
- kein Gebietsschema angegeben wird, wird das aktuelle Gebietsschema verwendet.
|
|
|
- </para>
|
|
|
-
|
|
|
- <example id="zend.currency.usage.informational.example">
|
|
|
- <title>Informationen von Währungen erhalten</title>
|
|
|
-
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
-// Erstellt eine Instanz mit 'en_US' und verwendet 'USD', 'Latin'
|
|
|
-// und 'en_US' da das die Standardwerte von 'en_US' sind
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
$currency = new Zend_Currency('en_US');
|
|
|
|
|
|
-// Gibt '$' aus
|
|
|
-echo $currency->getSymbol();
|
|
|
-
|
|
|
-// Gibt 'EUR' aus
|
|
|
-echo $currency->getShortName('EUR');
|
|
|
-
|
|
|
-// Gibt 'Österreichische Schilling' aus
|
|
|
-echo $currency->getName('ATS', 'de_AT');
|
|
|
+// Man könnte auch die 'locale' Option verwenden
|
|
|
+// $currency = new Zend_Currency(array('locale' => 'en_US'));
|
|
|
|
|
|
-// Gibt ein Array aus mit allen Regionen in denen USD verwendet wird
|
|
|
-print_r($currency->getRegionList();
|
|
|
-
|
|
|
-// Gibt ein Array mit allen Währungen, die jemals in dieser
|
|
|
-// Region verwendet wurden, aus
|
|
|
-print_r($currency->getCurrencyList('de_AT');
|
|
|
+// Siehe die aktuellen Einstellungen welche auf 'en_US' fixiert sind
|
|
|
+// var_dump($currency);
|
|
|
]]></programlisting>
|
|
|
- </example>
|
|
|
- </sect2>
|
|
|
-
|
|
|
- <sect2 id="zend.currency.usage.setlocale">
|
|
|
- <title>Neue Standardwerte setzen</title>
|
|
|
|
|
|
<para>
|
|
|
- Die Methode <methodname>setLocale()</methodname> erlaubt es, ein neues Gebietsschema für
|
|
|
- <classname>Zend_Currency</classname> zu setzen. Alle Standardwerte werden überschrieben,
|
|
|
- wenn diese Funktion aufgerufen wird. Das beinhaltet den Namen der Währung, die Abkürzung
|
|
|
- und das Symbol.
|
|
|
+ Wie in unserem ersten Beispiel ist die verwendete Währung "US Dollar". Aber jetzt sind
|
|
|
+ wir nicht mehr von den Einstellungen des Clients abhängig.
|
|
|
</para>
|
|
|
|
|
|
- <example id="zend.currency.usage.setlocale.example">
|
|
|
- <title>Ein neues Gebietsschema setzen</title>
|
|
|
-
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
-// Die Währung für US bekommen
|
|
|
-$currency = new Zend_Currency('en_US');
|
|
|
-print $currency->toCurrency(1000);
|
|
|
-
|
|
|
-// Die Währung für AT erhalten
|
|
|
-$currency->setLocale('de_AT');
|
|
|
-print $currency->toCurrency(1000);
|
|
|
-]]></programlisting>
|
|
|
- </example>
|
|
|
- </sect2>
|
|
|
-
|
|
|
- <sect2 id="zend.currency.usage.cache">
|
|
|
- <title>Zend_Currency Performance Optimierung</title>
|
|
|
-
|
|
|
<para>
|
|
|
- <classname>Zend_Currency</classname>'s Geschwindigkeit kann optimiert werden, indem
|
|
|
- <classname>Zend_Cache</classname> verwendet wird. Die statischen Methode
|
|
|
- <methodname>Zend_Currency::setCache($cache)</methodname> akzeptiert eine Option: Einen
|
|
|
- <classname>Zend_Cache</classname> Adapter. Wenn der Cache Adapter gesetzt wird, werden
|
|
|
- die Lokalisierungsdaten von <classname>Zend_Currency</classname> gecached. Es gibt
|
|
|
- einige statischen Methoden für die Manipulation des Caches:
|
|
|
- <methodname>Zend_Currency::getCache()</methodname>, <methodname>hasCache()</methodname>,
|
|
|
- <methodname>clearCache()</methodname> und <methodname>removeCache()</methodname>.
|
|
|
+ <classname>Zend_Currency</classname> unterstützt auch die Verwendung eines
|
|
|
+ Anwendungsweiten Gebietsschemas. Man kann eine Instanz von
|
|
|
+ <classname>Zend_Locale</classname> wie anbei gezeigt in der Registry setzen. Mit dieser
|
|
|
+ Schreibweise vermeidet man das manuelle Setzen des Gebietsschemas für jede Instanz, wenn
|
|
|
+ man das selbe Gebietsschema in der gesamten Anwendung verwenden will.
|
|
|
</para>
|
|
|
|
|
|
- <example id="zend.currency.usage.cache.example">
|
|
|
- <title>Cachen von Währungen</title>
|
|
|
+ <programlisting language="php"><![CDATA[
|
|
|
+// In der Bootstrap Datei
|
|
|
+$locale = new Zend_Locale('de_AT');
|
|
|
+Zend_Registry::set('Zend_Locale', $locale);
|
|
|
|
|
|
- <programlisting language="php"><![CDATA[
|
|
|
-// Ein Cache-Objekt erstellen
|
|
|
-$cache = Zend_Cache::factory('Core',
|
|
|
- 'File',
|
|
|
- array('lifetime' => 120,
|
|
|
- 'automatic_serialization' => true),
|
|
|
- array('cache_dir'
|
|
|
- => dirname(__FILE__) . '/_files/'));
|
|
|
-Zend_Currency::setCache($cache);
|
|
|
+// Irgendwo in der Anwendung
|
|
|
+$currency = new Zend_Currency();
|
|
|
]]></programlisting>
|
|
|
- </example>
|
|
|
</sect2>
|
|
|
</sect1>
|