File: Zend_Validate-StringLength.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (201 lines) | stat: -rw-r--r-- 7,710 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect2 id="zend.validate.set.stringlength">
    <title>StringLength</title>

    <para>
        Diese Prüfung erlaubt es zu prüfen ob ein angegebener String eine definierte Länge besitzt.
    </para>

    <note>
        <title>Zend_Validate_StringLength unterstützt nur die Prüfung von Strings</title>

        <para>
            Es ist zu beachten das <classname>Zend_Validate_StringLength</classname> nur die Prüfung
            von Strings unterstützt. Integer, Floats, Datumswerte oder Objekte können mit dieser
            Prüfung nicht überprüft werden.
        </para>
    </note>

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

        <para>
            Die folgenden Optionen werden von <classname>Zend_Validate_StringLength</classname>
            unterstützt:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis><property>encoding</property></emphasis>: Setzt die Kodierung von
                    <constant>ICONV</constant> welche für den String verwendet wird.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis><property>min</property></emphasis>: Setzt die erlaubte Mindestlänge
                    für einen String.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis><property>max</property></emphasis>: Setzt die erlaubte Maximallänge
                    für einen String.
                </para>
            </listitem>
        </itemizedlist>
    </sect3>

    <sect3 id="zend.validate.set.stringlength.basic">
        <title>Standardverhalten für Zend_Validate_StringLength</title>

        <para>
            Standardmäßig prüft diese Prüfung ob ein Wert zwischen <property>min</property> und
            <property>max</property> ist. Aber für <property>min</property> ist der Standardwert
            <emphasis>0</emphasis> und für <property>max</property> ist er
            <emphasis><constant>NULL</constant></emphasis>, was unlimitiert bedeutet.
        </para>

        <para>
            Deshalb prüft diese Prüfung standardmäßig, ohne das eine Option angegeben wurde, nur
            ob die Eingabe ein String ist.
        </para>
    </sect3>

    <sect3 id="zend.validate.set.stringlength.maximum">
        <title>Die maximal erlaubte Länge eines String begrenzen</title>

        <para>
            Um die maximal erlaubte Länge eines Strings zu begrenzen muss man die Eigenschaft
            <property>max</property> setzen. Sie akzeptiert einen Integerwert als Eingabe.
        </para>

        <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_StringLength(array('max' => 6));

$validator->isValid("Test"); // Gibt true zurück
$validator->isValid("Testing"); // Gibt false zurück
]]></programlisting>

        <para>
            Man kann die maximal erlaubte Länge auch im Nachhinein setzen indem die
            <methodname>setMax()</methodname> Methode verwendet wird. Und
            <methodname>getMax()</methodname> um die aktuelle maximale Grenze zu erhalten.
        </para>

        <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_StringLength();
$validator->setMax(6);

$validator->isValid("Test"); // Gibt true zurück
$validator->isValid("Testing"); // Gibt false zurück
]]></programlisting>
    </sect3>

    <sect3 id="zend.validate.set.stringlength.minimum">
        <title>Die mindestens benötigte Länge eines Strings begrenzen</title>

        <para>
            Um die mindestens benötigte Länge eines Strings zu begrenzen muss man die Eigenschaft
            <property>min</property> setzen. Sie akzeptiert einen Integerwert als Eingabe.
        </para>

        <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_StringLength(array('min' => 5));

$validator->isValid("Test"); // Gibt false zurück
$validator->isValid("Testing"); // Gibt true zurück
]]></programlisting>

        <para>
            Man kann die mindestens benötigte Länge auch im Nachhinein setzen indem die
            <methodname>setMin()</methodname> Methode verwendet wird. Und
            <methodname>getMin()</methodname> um die aktuelle Mindestgrenze zu erhalten.
        </para>

        <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_StringLength();
$validator->setMin(5);

$validator->isValid("Test"); // Gibt false zurück
$validator->isValid("Testing"); // Gibt true zurück
]]></programlisting>
    </sect3>

    <sect3 id="zend.validate.set.stringlength.both">
        <title>Einen String auf beiden Seiten begrenzen</title>

        <para>
            Manchmal ist es notwendig einen String zu erhalten der eine maximal definierte Länge,
            aber auch eine Mindestlänge hat. Wenn man, zum Beispiel, eine Textbox hat in welcher der
            Benutzer seinen Namen angeben kann, könnte man den Namen auf maximal 30 Zeichen
            begrenzen. Aber man will auch sicher gehen das er seinen Namen angegeben hat. Deshalb
            setzt man die zumindest benötigte Länge auf 3 Zeichen. Siehe das folgende Beispiel:
        </para>

        <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_StringLength(array('min' => 3, 'max' => 30));

$validator->isValid("."); // Gibt false zurück
$validator->isValid("Test"); // Gibt true zurück
$validator->isValid("Testing"); // Gibt true zurück
]]></programlisting>

        <note>
            <title>Eine kleinere Maximalgrenze als die Mindestgrenze setzen</title>

            <para>
                Wenn man versucht eine kleinere Maximalgrenze zu setzen als der aktuelle
                Mindestwert, oder eine größere Mindestgrenze als den aktuellen Maximalwert, dann
                wird eine Exception geworfen.
            </para>
        </note>
    </sect3>

    <sect3 id="zend.validate.set.stringlength.encoding">
        <title>Kodierung von Werten</title>

        <para>
            Strings verwenden immer eine Kodierung. Selbst wenn man keine explizite Kodierung
            verwendet, dann verwendet <acronym>PHP</acronym> eine. Wenn die eigene Anwendung eine
            andere Kodierung verwendet als <acronym>PHP</acronym> selbst, dann sollte man eine
            Kodierung setzen.
        </para>

        <para>
            Man kann eine eigene Kodierung bei der Instanzierung mit der
            <property>encoding</property> Option setzen, oder indem die
            <methodname>setEncoding()</methodname> Methode verwendet wird. Wir nehmen an das die
            eigene Installation <acronym>ISO</acronym> verwendet und die Anwendung auf
            <acronym>ISO</acronym> gesetzt ist. In diesem Fall sieht man das folgende
            Verhalten.
        </para>

        <programlisting language="php"><![CDATA[
$validator = new Zend_Validate_StringLength(
    array('min' => 6)
);
$validator->isValid("Ärger"); // Gibt false zurück

$validator->setEncoding("UTF-8");
$validator->isValid("Ärger"); // Gibt true zurück

$validator2 = new Zend_Validate_StringLength(
    array('min' => 6, 'encoding' => 'UTF-8')
);
$validator2->isValid("Ärger"); // Gibt true zurück
]]></programlisting>

        <para>
            Wenn die eigene Installation und die Anwendung also unterschiedliche Kodierungen
            verwenden, dann sollte man immer selbst eine Kodierung setzen.
        </para>
    </sect3>
</sect2>
<!--
vim:se ts=4 sw=4 et:
-->