<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect2 id="zend.validate.set.iban">
    <title>Iban</title>

    <para>
        <classname>Zend_Validate_Iban</classname> prüft ob ein angegebener Wert eine
        <acronym>IBAN</acronym> Nummer sein könnte. <acronym>IBAN</acronym> ist die Abkürzung für
        "International Bank Account Number".
    </para>

    <sect3 id="zend.validate.set.iban.options">
        <title>Unterstützte Optionen für Zend_Validate_Iban</title>

        <para>
            Die folgenden Optionen werden für <classname>Zend_Validate_Iban</classname> unterstützt:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis><property>locale</property></emphasis>: Setzt das Gebietsschema
                    welches verwendet wird um das <acronym>IBAN</acronym> Format für die Prüfung zu
                    erhalten.
                </para>
            </listitem>
        </itemizedlist>
    </sect3>

    <sect3 id="zend.validate.set.iban.basic">
        <title>IBAN Prüfung</title>

        <para>
            <acronym>IBAN</acronym> Nummern sind immer in Bezug zu einem Land. Dies bedeutet dass
            unterschiedliche Länder unterschiedliche Formate für Ihre <acronym>IBAN</acronym>
            Nummern verwenden. Das ist der Grund dafür warum <acronym>IBAN</acronym> nummern immer
            ein Gebietsschema benötigen. Wenn wir dies wissen, dann wissen wir bereits wie wir
            <classname>Zend_Validate_Iban</classname> verwenden können.
        </para>

        <sect4 id="zend.validate.set.iban.basic.application">
            <title>Anwendungsweites Gebietsschema</title>

            <para>
                Wir können das Anwendungsweite Gebietsschema verwenden. Dass bedeutet, wenn keine
                Option  bei der Instanzierung angegeben wird, das
                <classname>Zend_Validate_Iban</classname> nach dem Anwendungsweiten Gebietsschema
                sucht. Siehe den folgenden Codeabschnitt:
            </para>

            <programlisting language="php"><![CDATA[
// In der Bootstrap
Zend_Registry::set('Zend_Locale', new Zend_Locale('de_AT'));

// Im Modul
$validator = new Zend_Validate_Iban();

if ($validator->isValid('AT611904300234573201')) {
    // IBAN scheint gültig zu sein
} else {
    // IBAN ist ungültig
}
]]></programlisting>

            <note>
                <title>Anwendungsweites Gebietsschema</title>

                <para>
                    Natürlich funktioniert dies nur wenn das Anwendungsweite Gebietsschema in der
                    Registry vorher gesetzt wurde. Andernfalls wird
                    <classname>Zend_Locale</classname> versuchen das Gebietsschema zu verwenden
                    welches der Client sendet, oder wenn keines gesendet wurde, das Gebietsschema
                    der Umgebung. Man sollte darauf achten das dies zu ungewünschtem Verhalten bei
                    der Prüfung führen kann.
                </para>
            </note>
        </sect4>

        <sect4 id="zend.validate.set.iban.basic.false">
            <title>Unscharfe IBAN Prüfung</title>

            <para>
                Manchmal ist es nützlich, nur zu prüfen ob der angegebene Wert eine
                <acronym>IBAN</acronym> Nummer <emphasis>ist</emphasis> oder nicht. Das bedeutet
                das man nicht auf ein definiertes Land prüfen will. Das kann getan werden indem ein
                <constant>FALSE</constant> als Gebietsschema verwendet wird.
            </para>

            <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_Iban(array('locale' => false));
// Achtung: Man kann ein FALSE auch als einzelnen Parmeter setzen

if ($validator->isValid('AT611904300234573201')) {
    // IBAN scheint gültig zu sein
} else {
    // IBAN ist nicht gültig
}
]]></programlisting>

            <para>
                So wird <emphasis>jede</emphasis> <acronym>IBAN</acronym> Nummer gültig sein. Es
                ist zu beachten dass man dies nicht tun sollte wenn man nur Konten von einem
                einzelnen Land akzeptiert.
            </para>
        </sect4>

        <sect4 id="zend.validate.set.iban.basic.aware">
            <title>Gebietsschema verwendende IBAN Prüfung</title>

            <para>
                Um gegen ein definiertes Land zu prüfen muss man nur das gewünschte Gebietsschema
                angeben. Man kann dies mit der <property>locale</property> Option tun, und bei
                Verwendung von <methodname>setLocale()</methodname> auch im Nachhinein.
            </para>

            <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_Iban(array('locale' => 'de_AT'));

if ($validator->isValid('AT611904300234573201')) {
    // IBAN scheint gültig zu sein
} else {
    // IBAN ist ungültig
}
]]></programlisting>

            <note>
                <title>Vollständig qualifizierte Gebietsschemas verwenden</title>

                <para>
                    Man muss ein vollständig qualifiziertes Gebietsschema verwenden. Andernfalls
                    kann das Land nicht korrekt erkannt werden, da gleiche Sprachen in mehreren
                    Ländern gesprochen werden.
                </para>
            </note>
        </sect4>
    </sect3>
</sect2>
<!--
vim:se ts=4 sw=4 et:
-->
