[ZF-10089] Zend_Log
[zend.git] / documentation / manual / fr / module_specs / Zend_Validate-Barcode.xml
blob5e8f9dec274cf144aef3ede681fcaa22493b6aaf
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 22129 -->
4 <sect2 id="zend.validate.set.barcode">
5     <title>Barcode</title>
7     <para>
8         <classname>Zend_Validate_Barcode</classname> permet de vérifier si une donnée représente
9         un code barres.
10     </para>
12     <para>
13         <classname>Zend_Validate_Barcode</classname> supporte de multiples standards de codes à barres
14         et peut être étendu pour les codes barres propriétaires. Les formats suivants sont supportés:
15     </para>
17     <itemizedlist>
18         <listitem>
19             <para>
20                 <emphasis>CODE25</emphasis>: Aussi appelé "two of five" ou "Code25 Industrial".
21             </para>
23             <para>
24                 Ce code n'a pas de limite de taille. Il supporte les chiffres et le dernier chiffre
25                 peut être une somme de contrôle optionnelle calculée sur un modulo 10. Ce standard est
26                 très vieux et plus trop utilisé. Les cas d'utilisations classiques sont l'industrie
27             </para>
28         </listitem>
30         <listitem>
31             <para>
32                 <emphasis>CODE25INTERLEAVED</emphasis>: Aussi appelé "Code 2 of 5 Interleaved".
33             </para>
35             <para>
36                 C'est une variante de CODE25. Il n'a pas de limite de taille mais il doit contenir un
37                 nombre de caractères pair. Il supporte uniquement les chiffres et le dernier chiffre
38                 peut être une somme de contrôle optionnelle calculée sur un modulo 10. Il est utilisé
39                 au travers le monde et typiquement dans l'industrie / la distribution.
40             </para>
41         </listitem>
43         <listitem>
44             <para>
45                 <emphasis>CODE39</emphasis>: CODE39 est un des codes les plus vieux.
46             </para>
48             <para>
49                 Ce code a une taille variable. Il supporte les chiffres, les lettres majuscules, et 7 caractères
50                 spéciaux comme l'espace, le point ou le signe dollar. Il peut posséder optionnellement une somme
51                 de contrôle calculée sur un modulo 43. Il est utilisé dans le monde, dans l'industrie.
52             </para>
53         </listitem>
55         <listitem>
56             <para>
57                 <emphasis>CODE39EXT</emphasis>: CODE39EXT est une extension de CODE39.
58             </para>
60             <para>
61                 Ce code à barres a les mêmes propriétés que CODE39. Aussi, il autorise l'utilisation de tous les
62                 caractères ASCII (128). Ce standard est très utilisé dans l'industrie, dans le monde.
63             </para>
64         </listitem>
66         <listitem>
67             <para>
68                 <emphasis>CODE93</emphasis>: CODE93 est le successeur de CODE39.
69             </para>
71             <para>
72                 Ce code a une taille variable. Il supporte les chiffres, les lettres de l'alphabet et 7 caractères
73                 spéciaux. Il possède optionnellement une somme de contrôle à 2 caractères calculée sur un modulo 47.
74                 Ce standard produit un code plus dense que CODE39 et est plus sécurisé.
75             </para>
76         </listitem>
78         <listitem>
79             <para>
80                 <emphasis>CODE93EXT</emphasis>: CODE93EXT est une extension de CODE93.
81             </para>
83             <para>
84                 Ce type de code à barres a les mêmes propriétés que CODE93. Aussi, il permet l'utilisation des 128
85                 caractères du jeu ASCII. Ce standard est utilisé dans le monde et principalement dans l'industrie.
86             </para>
87         </listitem>
89         <listitem>
90             <para>
91                 <emphasis>EAN2</emphasis>: EAN est un raccourci de "European Article Number".
92             </para>
94             <para>
95                 Ces codes ont deux caractères. Seuls les chiffres sont supportés et ils n'ont pas de
96                 somme de contrôle. Ce standard est utilisé principalement en plus de EAN13 (ISBN) sur
97                 les livres imprimés.
98             </para>
99         </listitem>
101         <listitem>
102             <para>
103                 <emphasis>EAN5</emphasis>: EAN est un raccourci pour "European Article Number".
104             </para>
106             <para>
107                 Ce code barres doit comporter 5 caractères. Il ne supporte que les chiffres et ne possède pas de
108                 somme de contrôle. Ce standard est principalement utilisé en plus de EAN13 (ISBN) pour
109                 l'impression de livres.
110             </para>
111         </listitem>
113         <listitem>
114             <para>
115                 <emphasis>EAN8</emphasis>: EAN est un raccourci pour "European Article Number".
116             </para>
118             <para>
119                 Ce code barres se compose de 7 ou 8 caractères. Il supporte les chiffres uniquement. Lorsqu'il est
120                 à 8 caractères, il inclut une somme de contrôle. Ce standard est utilisé dans le monde mais pour
121                 des besoins limités. On le trouve pour les petits articles où un code barres plus long n'aurait
122                 pas pu être imprimé.
123             </para>
124         </listitem>
126         <listitem>
127             <para>
128                 <emphasis>EAN12</emphasis>: EAN est un raccourci pour "European Article Number".
129             </para>
131             <para>
132                 Ce code doit faire 12 caractères de long. Il ne supporte que les chiffres et le dernier chiffre est
133                 une somme de contrôle calculée sur un modulo 10. C'est un code utilisé aux Etats-Unis et courant
134                 sur le marché. Il a été dépassé par EAN13.
135             </para>
136         </listitem>
138         <listitem>
139             <para>
140                 <emphasis>EAN13</emphasis>: EAN est un raccourci pour "European Article Number".
141             </para>
143             <para>
144                 Ce code doit faire 13 caractères de long, il ne supporte que les chiffres et le dernier chiffre est
145                 une somme de contrôle calculée sur un modulo 10. Ce standard est utilisé dans le monde et est très
146                 commun sur le marché.
147             </para>
148         </listitem>
150         <listitem>
151             <para>
152                 <emphasis>EAN14</emphasis>: EAN est un raccourci pour "European Article Number".
153             </para>
155             <para>
156                 Ce code fait 14 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
157                 représente la somme de contrôle calculée sur un modulo 10. Ce code barres est utilisé dans
158                 le monde pour la distribution. C'est le successeur de EAN13.
159             </para>
160         </listitem>
162         <listitem>
163             <para>
164                 <emphasis>EAN18</emphasis>: EAN est un raccourci pour "European Article Number".
165             </para>
167             <para>
168                 Ce code fait 18 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
169                 représente la somme de contrôle calculée sur un modulo 10. Ce code barres est utilisé pour
170                 identifier les conteneur d'envoi dans le transport.
171             </para>
172         </listitem>
174         <listitem>
175             <para>
176                 <emphasis>GTIN12</emphasis>: GTIN est le raccourci de "Global Trade Item Number".
177             </para>
179             <para>
180                 Ce code utilise le même standard que EAN12 et est son successeur. Il est utilisé paticulièrement
181                 aux Etats-Unis.
182             </para>
183         </listitem>
185         <listitem>
186             <para>
187                 <emphasis>GTIN13</emphasis>: GTIN est le raccourci de "Global Trade Item Number".
188             </para>
190             <para>
191                 Ce code utilise le même standard que EAN13 et est son successeur. Il est utilisé dans le monde
192                 entier par l'industrie.
193             </para>
194         </listitem>
196         <listitem>
197             <para>
198                 <emphasis>GTIN14</emphasis>: GTIN est le raccourci de "Global Trade Item Number".
199             </para>
201             <para>
202                 Ce code utilise le même standard que EAN14 et est son successeur. Il est utilisé dans le monde
203                 entier par l'industrie.
204             </para>
205         </listitem>
207         <listitem>
208             <para>
209                 <emphasis>IDENTCODE</emphasis>: Identcode est utilisé par Deutsche Post et DHL. C'est
210                 un cas particulier de Code25.
211             </para>
213             <para>
214                 Ce code fait 12 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
215                 représente la comme de contrôle calculée modulo 10. Ce code barres est utilisé principalement
216                 par les entreprises DP et DHL.
217             </para>
218         </listitem>
220         <listitem>
221             <para>
222                 <emphasis>INTELLIGENTMAIL</emphasis>: Intelligent Mail est utilisé par les services postaux.
223             </para>
225             <para>
226                 Ce code fait 20, 25, 29 ou 31 caractères de longueur. Il ne support que les chiffres et ne
227                 contient pas de somme de contrôle. Il est le successeur de <acronym>PLANET</acronym> et
228                 <acronym>POSTNET</acronym>. Il est utilisé principalement dans les services postaux aux
229                 Etats-Unis.
230             </para>
231         </listitem>
233         <listitem>
234             <para>
235                 <emphasis>ISSN</emphasis>: <acronym>ISSN</acronym> est l'abréviation de
236                 International Standard Serial Number.
237             </para>
239             <para>
240                 Ce code a une longueur de 8 ou 13 caractères. Il ne supporte que les chiffres et le dernier
241                 chiffre représente la somme de contrôle calculée sur un modulo 11. Il est utilisé dans
242                 le print à travers le monde.
243             </para>
244         </listitem>
246         <listitem>
247             <para>
248                 <emphasis>ITF14</emphasis>: ITF14 est l'implémentation GS1 de Interleaved Two
249                 of Five bar code.
250             </para>
252             <para>
253                 Ce code est une implémentation particulière de Interleaved 2 of 5. Il doit mesurer
254                 14 caractères de long et est basé sur GTIN14. Il ne contient que des chiffres et le dernier
255                 chiffre est une somme de contrôle calculée sur un modulo 10. Il est utilisé dans le monde
256                 dans la distribution.
257             </para>
258         </listitem>
260         <listitem>
261             <para>
262                 <emphasis>LEITCODE</emphasis>: Leitcode est utilisé par Deutsche Post et DHL. C'est un cas
263                 particulier de Code25.
264             </para>
266             <para>
267                 Ce code mesure 14 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
268                 est une somme de contrôle calculée sur un modulo 10. Il est principalement utilisé par
269                 les entreprises DP et DHL.
270             </para>
271         </listitem>
273         <listitem>
274             <para>
275                 <emphasis>PLANET</emphasis>: Planet est l'abréviation de Postal Alpha Numeric
276                 Encoding Technique.
277             </para>
279             <para>
280                 Ce code fait 12 ou 14 caractères de long. Il ne supporte que les chiffres et le dernier
281                 chiffre est une somme de contrôle. Ce code barres est utilisé principalement dans les
282                 services postaux des Etats-Unis.
283             </para>
284         </listitem>
286         <listitem>
287             <para>
288                 <emphasis>POSTNET</emphasis>: Postnet est utilisé par le service des Postes des
289                 Etats-Unis.
290             </para>
292             <para>
293                 Ce code fait 6, 7, 10 ou 12 caractères. Il ne supporte que les chiffres et le dernier
294                 chiffre est une somme de contrôle. Ce code barres est utilisé dans les services postaux
295                 aux Etats-Unis principalement.
296             </para>
297         </listitem>
299         <listitem>
300             <para>
301                 <emphasis>ROYALMAIL</emphasis>: Royalmail est utilisé par Royal Mail.
302             </para>
304             <para>
305                 Ce code n'a pas de taille précise. Il supporte les chiffres, les lettres majuscules et le
306                 dernier caractère est une somme de contrôle. Ce standard est utilisé par Royal Mail pour le
307                 service Cleanmail. Il est aussi appelé <acronym>RM4SCC</acronym>.
308             </para>
309         </listitem>
311         <listitem>
312             <para>
313                 <emphasis>SSCC</emphasis>: SSCC est un raccourci pour "Serial Shipping Container
314                 Code".
315             </para>
317             <para>
318                 Ce code est une variante de EAN, il doit faire 18 caractères de long et ne supporte que
319                 les chiffres. Le dernier chiffre doit être la somme de contrôle qui est calculée sur un
320                 modulo 10. Ce code est utilisé principalement dans le transport.
321             </para>
322         </listitem>
324         <listitem>
325             <para>
326                 <emphasis>UPCA</emphasis>: UPC est le raccourci de "Univeral Product Code".
327             </para>
329             <para>
330                 Ce code a précédé EAN13. Il doit faire 12 caractères et ne supporte que les chiffres.
331                 Le dernier chiffre est une somme de contrôle calculée sur un modulo 10. Ce code barres
332                 est utilisé aux Etats-Unis.
333             </para>
334         </listitem>
336         <listitem>
337             <para>
338                 <emphasis>UPCE</emphasis>: UPCE est une variante simplifié et plus courte de UPCA.
339             </para>
341             <para>
342                 Il peut faire 6, 7 ou 8 caractères et ne supporte que les chiffres. Lorsqu'il fait 8
343                 caractères, il inclut une somme de contrôle calculée sur un modulo 10. Ce code barres
344                 est utilisé sur de petits produits sur lesquels UPCA ne pourrait pas tenir.
345             </para>
346         </listitem>
347     </itemizedlist>
349     <sect3 id="zend.validate.set.barcode.options">
350         <title>Options supportées par Zend_Validate_Barcode</title>
352         <para>
353             Les options suivantes sont supportées par <classname>Zend_Validate_Barcode</classname>:
354         </para>
356         <itemizedlist>
357             <listitem>
358                 <para>
359                     <emphasis><property>adapter</property></emphasis>: Affecte l'adaptateur de code
360                     barres à utiliser. La liste des adaptateurs est donnée ci-dessus. Si vous voulez préciser
361                     un adaptateur personnalisé, le nom complet de la classe est requis.
362                 </para>
363             </listitem>
365             <listitem>
366                 <para>
367                     <emphasis><property>checksum</property></emphasis>: <constant>TRUE</constant>
368                     si oui ou non utiliser une somme de contrôle. Notez que certains adaptateurs ne supportent
369                     pas un telle option.
370                 </para>
371             </listitem>
373             <listitem>
374                 <para>
375                     <emphasis><property>options</property></emphasis>: Affecte des options personnalisées pour
376                     un adaptateur personnalisé.
377                 </para>
378             </listitem>
379         </itemizedlist>
380     </sect3>
382     <sect3 id="zend.validate.set.barcode.basic">
383         <title>Utilisation classique</title>
385         <para>
386             Pour valider si une chaine est un code barres, vous devez juste connaitre son type. Voyez l'exemple
387             suivant pour un EAN13:
388         </para>
390         <programlisting language="php"><![CDATA[
391 $valid = new Zend_Validate_Barcode('EAN13');
392 if ($valid->isValid($input)) {
393     // input semble être valide
394 } else {
395     // input est invalide
397 ]]></programlisting>
398     </sect3>
400     <sect3 id="zend.validate.set.barcode.checksum">
401         <title>Somme de contrôle optionnelle</title>
403         <para>
404             Certains codes barres proposent une somme de contrôle. Ils peuvent être valides sans cette
405             somme mais si vous préciser celle-la alors elle devra être validée. Par défaut la somme
406             de contrôle n'est pas activée. En utilisant l'option <property>checksum</property> vous pouvez
407             indiquer si oui ou non la somme de contrôle doit être vérifiée.
408         </para>
410         <programlisting language="php"><![CDATA[
411 $valid = new Zend_Validate_Barcode(array(
412     'adapter'  => 'EAN13',
413     'checksum' => false,
415 if ($valid->isValid($input)) {
416     // input semble être valide
417 } else {
418     // input est invalide
420 ]]></programlisting>
422         <note>
423             <title>Sécurité moindre en désactivant la validation de la somme de contrôle</title>
425             <para>
426                  En désactivant la validation de la somme de contrôle vous réduirez la sécurité du
427                  code à barres. Aussi veuillez noter que si vous désactiver ce contrôle pour des
428                  codes l'utilisant vous risqueriez de considérer comme valides des codes barres
429                  qui ne le sont pas en réalité.
430             </para>
431         </note>
432     </sect3>
434     <sect3 id="zend.validate.set.barcode.custom">
435         <title>Ecrire des validateurs personnalisés</title>
437         <para>
438             Vous pouvez créer vos propres validateurs pour <classname>Zend_Validate_Barcode</classname>;
439             ce qui est nécessaire si vous traitez des codes barres propriétaires. Vous aurez alors besoin
440             des informations suivantes.
441         </para>
443         <itemizedlist>
444             <listitem>
445                 <para>
446                     <emphasis>Length</emphasis>: La taille du code barres. Peut être une des valeur suivantes:
447                 </para>
449                 <itemizedlist>
450                     <listitem>
451                         <para>
452                             <emphasis>Integer</emphasis>: Une valeur plus grande que zéro qui définit exactement
453                             le nombre de caractères du code barres.
454                         </para>
455                     </listitem>
457                     <listitem>
458                         <para>
459                             <emphasis>-1</emphasis>: Aucune limite de taille pour ce code barres.
460                         </para>
461                     </listitem>
463                     <listitem>
464                         <para>
465                             <emphasis>"even"</emphasis>: La taille du code barres doit être un nombre
466                             de caractères pair.
467                         </para>
468                     </listitem>
470                     <listitem>
471                         <para>
472                             <emphasis>"odd"</emphasis>: La taille du code barres doit être un nombre
473                             de caractères impair.
474                         </para>
475                     </listitem>
477                     <listitem>
478                         <para>
479                             <emphasis>array</emphasis>: Un tableau de valeurs entières. La taille du code
480                             barres doit être exactement égale à une des valeurs dans le tableau.
481                         </para>
482                     </listitem>
483                 </itemizedlist>
484             </listitem>
486             <listitem>
487                 <para>
488                     <emphasis>Characters</emphasis>: Une chaine qui contient tous les caractères autorisés
489                     pour ce code barres. La valeur entière spéciale 128 est autorisée ici, elle signifie
490                     "les 128 premiers caractères du jeu ASCII".
491                 </para>
492             </listitem>
494             <listitem>
495                 <para>
496                     <emphasis>Checksum</emphasis>: Une chaine utilisée comme callback pour valideer la
497                     somme de contrôle.
498                 </para>
499             </listitem>
500         </itemizedlist>
502         <para>
503             Votre validateur de code à barres personnalisé doit étendre
504             <classname>Zend_Validate_Barcode_AdapterAbstract</classname> ou implémenter
505             <interface>Zend_Validate_Barcode_AdapterInterface</interface>.
506         </para>
508         <para>
509             Comme exemple, créons un validateur qui utilise un nombre pair de caractères pouvant être des
510             chiffres et les lettres 'ABCDE'. Une somme de contrôle sera aussi calculée.
511         </para>
513         <programlisting language="php"><![CDATA[
514 class My_Barcode_MyBar extends Zend_Validate_Barcode_AdapterAbstract
516     protected $_length     = 'even';
517     protected $_characters = '0123456789ABCDE';
518     protected $_checksum   = '_mod66';
520     protected function _mod66($barcode)
521     {
522         // effectuer de la validation et retourner un booléen
523     }
526 $valid = new Zend_Validate_Barcode('My_Barcode_MyBar');
527 if ($valid->isValid($input)) {
528     // input semble valide
529 } else {
530     // input est invalide
532 ]]></programlisting>
533     </sect3>
534 </sect2>
535 <!--
536 vim:se ts=4 sw=4 et: