| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect2 id="zend.validate.set.barcode">
- <title>Barcode</title>
- <para>
- <classname>Zend_Validate_Barcode</classname> permet de vérifier si une donnée représente
- un code barres.
- </para>
- <para>
- <classname>Zend_Validate_Barcode</classname> supporte de multiples standards de codes à barres
- et peut être étendu pour les codes barres propriétaires. Les formats suivants sont supportés:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>CODE25</emphasis>: Aussi appelé "two of five" ou "Code25 Industrial".
- </para>
- <para>
- Ce code n'a pas de limite de taille. Il supporte les chiffres et le dernier chiffre
- peut être une somme de contrôle optionnelle calculée sur un modulo 10. Ce standard est
- très vieux et plus trop utilisé. Les cas d'utilisations classiques sont l'industrie
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>CODE25INTERLEAVED</emphasis>: Aussi appelé "Code 2 of 5 Interleaved".
- </para>
- <para>
- C'est une variante de CODE25. Il n'a pas de limite de taille mais il doit contenir un
- nombre de caractères pair. Il supporte uniquement les chiffres et le dernier chiffre
- peut être une somme de contrôle optionnelle calculée sur un modulo 10. Il est utilisé
- au travers le monde et typiquement dans l'industrie / la distribution.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>CODE39</emphasis>: CODE39 est un des codes les plus vieux.
- </para>
- <para>
- Ce code a une taille variable. Il supporte les chiffres, les lettres majuscules, et 7 caractères
- spéciaux comme l'espace, le point ou le signe dollar. Il peut posséder optionnellement une somme
- de contrôle calculée sur un modulo 43. Il est utilisé dans le monde, dans l'industrie.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>CODE39EXT</emphasis>: CODE39EXT est une extension de CODE39.
- </para>
- <para>
- Ce code à barres a les mêmes propriétés que CODE39. Aussi, il autorise l'utilisation de tous les
- caractères ASCII (128). Ce standard est très utilisé dans l'industrie, dans le monde.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>CODE93</emphasis>: CODE93 est le successeur de CODE39.
- </para>
- <para>
- Ce code a une taille variable. Il supporte les chiffres, les lettres de l'alphabet et 7 caractères
- spéciaux. Il possède optionnellement une somme de contrôle à 2 caractères calculée sur un modulo 47.
- Ce standard produit un code plus dense que CODE39 et est plus sécurisé.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>CODE93EXT</emphasis>: CODE93EXT est une extension de CODE93.
- </para>
- <para>
- Ce type de code à barres a les mêmes propriétés que CODE93. Aussi, il permet l'utilisation des 128
- caractères du jeu ASCII. Ce standard est utilisé dans le monde et principalement dans l'industrie.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>EAN2</emphasis>: EAN est un raccourci de "European Article Number".
- </para>
- <para>
- Ces codes ont deux caractères. Seuls les chiffres sont supportés et ils n'ont pas de
- somme de contrôle. Ce standard est utilisé principalement en plus de EAN13 (ISBN) sur
- les livres imprimés.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>EAN5</emphasis>: EAN est un raccourci pour "European Article Number".
- </para>
- <para>
- Ce code barres doit comporter 5 caractères. Il ne supporte que les chiffres et ne possède pas de
- somme de contrôle. Ce standard est principalement utilisé en plus de EAN13 (ISBN) pour
- l'impression de livres.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>EAN8</emphasis>: EAN est un raccourci pour "European Article Number".
- </para>
- <para>
- Ce code barres se compose de 7 ou 8 caractères. Il supporte les chiffres uniquement. Lorsqu'il est
- à 8 caractères, il inclut une somme de contrôle. Ce standard est utilisé dans le monde mais pour
- des besoins limités. On le trouve pour les petits articles où un code barres plus long n'aurait
- pas pu être imprimé.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>EAN12</emphasis>: EAN est un raccourci pour "European Article Number".
- </para>
- <para>
- Ce code doit faire 12 caractères de long. Il ne supporte que les chiffres et le dernier chiffre est
- une somme de contrôle calculée sur un modulo 10. C'est un code utilisé aux Etats-Unis et courant
- sur le marché. Il a été dépassé par EAN13.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>EAN13</emphasis>: EAN est un raccourci pour "European Article Number".
- </para>
- <para>
- Ce code doit faire 13 caractères de long, il ne supporte que les chiffres et le dernier chiffre est
- une somme de contrôle calculée sur un modulo 10. Ce standard est utilisé dans le monde et est très
- commun sur le marché.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>EAN14</emphasis>: EAN est un raccourci pour "European Article Number".
- </para>
- <para>
- Ce code fait 14 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
- représente la somme de contrôle calculée sur un modulo 10. Ce code barres est utilisé dans
- le monde pour la distribution. C'est le successeur de EAN13.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>EAN18</emphasis>: EAN est un raccourci pour "European Article Number".
- </para>
- <para>
- Ce code fait 18 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
- représente la somme de contrôle calculée sur un modulo 10. Ce code barres est utilisé pour
- identifier les conteneur d'envoi dans le transport.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>GTIN12</emphasis>: GTIN est le raccourci de "Global Trade Item Number".
- </para>
- <para>
- Ce code utilise le même standard que EAN12 et est son successeur. Il est utilisé paticulièrement
- aux Etats-Unis.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>GTIN13</emphasis>: GTIN est le raccourci de "Global Trade Item Number".
- </para>
- <para>
- Ce code utilise le même standard que EAN13 et est son successeur. Il est utilisé dans le monde
- entier par l'industrie.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>GTIN14</emphasis>: GTIN est le raccourci de "Global Trade Item Number".
- </para>
- <para>
- Ce code utilise le même standard que EAN14 et est son successeur. Il est utilisé dans le monde
- entier par l'industrie.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>IDENTCODE</emphasis>: Identcode est utilisé par Deutsche Post et DHL. C'est
- un cas particulier de Code25.
- </para>
- <para>
- Ce code fait 12 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
- représente la comme de contrôle calculée modulo 10. Ce code barres est utilisé principalement
- par les entreprises DP et DHL.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>INTELLIGENTMAIL</emphasis>: Intelligent Mail est utilisé par les services postaux.
- </para>
- <para>
- Ce code fait 20, 25, 29 ou 31 caractères de longueur. Il ne support que les chiffres et ne
- contient pas de somme de contrôle. Il est le successeur de <acronym>PLANET</acronym> et
- <acronym>POSTNET</acronym>. Il est utilisé principalement dans les services postaux aux
- Etats-Unis.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>ISSN</emphasis>: <acronym>ISSN</acronym> est l'abréviation de
- International Standard Serial Number.
- </para>
- <para>
- Ce code a une longueur de 8 ou 13 caractères. Il ne supporte que les chiffres et le dernier
- chiffre représente la somme de contrôle calculée sur un modulo 11. Il est utilisé dans
- le print à travers le monde.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>ITF14</emphasis>: ITF14 est l'implémentation GS1 de Interleaved Two
- of Five bar code.
- </para>
- <para>
- Ce code est une implémentation particulière de Interleaved 2 of 5. Il doit mesurer
- 14 caractères de long et est basé sur GTIN14. Il ne contient que des chiffres et le dernier
- chiffre est une somme de contrôle calculée sur un modulo 10. Il est utilisé dans le monde
- dans la distribution.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>LEITCODE</emphasis>: Leitcode est utilisé par Deutsche Post et DHL. C'est un cas
- particulier de Code25.
- </para>
- <para>
- Ce code mesure 14 caractères de longueur et ne supporte que les chiffres. Le dernier chiffre
- est une somme de contrôle calculée sur un modulo 10. Il est principalement utilisé par
- les entreprises DP et DHL.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>PLANET</emphasis>: Planet est l'abréviation de Postal Alpha Numeric
- Encoding Technique.
- </para>
- <para>
- Ce code fait 12 ou 14 caractères de long. Il ne supporte que les chiffres et le dernier
- chiffre est une somme de contrôle. Ce code barres est utilisé principalement dans les
- services postaux des Etats-Unis.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>POSTNET</emphasis>: Postnet est utilisé par le service des Postes des
- Etats-Unis.
- </para>
- <para>
- Ce code fait 6, 7, 10 ou 12 caractères. Il ne supporte que les chiffres et le dernier
- chiffre est une somme de contrôle. Ce code barres est utilisé dans les services postaux
- aux Etats-Unis principalement.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>ROYALMAIL</emphasis>: Royalmail est utilisé par Royal Mail.
- </para>
- <para>
- Ce code n'a pas de taille précise. Il supporte les chiffres, les lettres majuscules et le
- dernier caractère est une somme de contrôle. Ce standard est utilisé par Royal Mail pour le
- service Cleanmail. Il est aussi appelé <acronym>RM4SCC</acronym>.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>SSCC</emphasis>: SSCC est un raccourci pour "Serial Shipping Container
- Code".
- </para>
- <para>
- Ce code est une variante de EAN, il doit faire 18 caractères de long et ne supporte que
- les chiffres. Le dernier chiffre doit être la somme de contrôle qui est calculée sur un
- modulo 10. Ce code est utilisé principalement dans le transport.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>UPCA</emphasis>: UPC est le raccourci de "Univeral Product Code".
- </para>
- <para>
- Ce code a précédé EAN13. Il doit faire 12 caractères et ne supporte que les chiffres.
- Le dernier chiffre est une somme de contrôle calculée sur un modulo 10. Ce code barres
- est utilisé aux Etats-Unis.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>UPCE</emphasis>: UPCE est une variante simplifié et plus courte de UPCA.
- </para>
- <para>
- Il peut faire 6, 7 ou 8 caractères et ne supporte que les chiffres. Lorsqu'il fait 8
- caractères, il inclut une somme de contrôle calculée sur un modulo 10. Ce code barres
- est utilisé sur de petits produits sur lesquels UPCA ne pourrait pas tenir.
- </para>
- </listitem>
- </itemizedlist>
- <sect3 id="zend.validate.set.barcode.options">
- <title>Options supportées par Zend_Validate_Barcode</title>
- <para>
- Les options suivantes sont supportées par <classname>Zend_Validate_Barcode</classname>:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>adapter</property></emphasis>: Affecte l'adaptateur de code
- barres à utiliser. La liste des adaptateurs est donnée ci-dessus. Si vous voulez préciser
- un adaptateur personnalisé, le nom complet de la classe est requis.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>checksum</property></emphasis>: <constant>TRUE</constant>
- si oui ou non utiliser une somme de contrôle. Notez que certains adaptateurs ne supportent
- pas un telle option.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>options</property></emphasis>: Affecte des options personnalisées pour
- un adaptateur personnalisé.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.validate.set.barcode.basic">
- <title>Utilisation classique</title>
- <para>
- Pour valider si une chaine est un code barres, vous devez juste connaitre son type. Voyez l'exemple
- suivant pour un EAN13:
- </para>
- <programlisting language="php"><![CDATA[
- $valid = new Zend_Validate_Barcode('EAN13');
- if ($valid->isValid($input)) {
- // input semble être valide
- } else {
- // input est invalide
- }
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.validate.set.barcode.checksum">
- <title>Somme de contrôle optionnelle</title>
- <para>
- Certains codes barres proposent une somme de contrôle. Ils peuvent être valides sans cette
- somme mais si vous préciser celle-la alors elle devra être validée. Par défaut la somme
- de contrôle n'est pas activée. En utilisant l'option <property>checksum</property> vous pouvez
- indiquer si oui ou non la somme de contrôle doit être vérifiée.
- </para>
- <programlisting language="php"><![CDATA[
- $valid = new Zend_Validate_Barcode(array(
- 'adapter' => 'EAN13',
- 'checksum' => false,
- ));
- if ($valid->isValid($input)) {
- // input semble être valide
- } else {
- // input est invalide
- }
- ]]></programlisting>
- <note>
- <title>Sécurité moindre en désactivant la validation de la somme de contrôle</title>
- <para>
- En désactivant la validation de la somme de contrôle vous réduirez la sécurité du
- code à barres. Aussi veuillez noter que si vous désactiver ce contrôle pour des
- codes l'utilisant vous risqueriez de considérer comme valides des codes barres
- qui ne le sont pas en réalité.
- </para>
- </note>
- </sect3>
- <sect3 id="zend.validate.set.barcode.custom">
- <title>Ecrire des validateurs personnalisés</title>
- <para>
- Vous pouvez créer vos propres validateurs pour <classname>Zend_Validate_Barcode</classname>;
- ce qui est nécessaire si vous traitez des codes barres propriétaires. Vous aurez alors besoin
- des informations suivantes.
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Length</emphasis>: La taille du code barres. Peut être une des valeur suivantes:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>Integer</emphasis>: Une valeur plus grande que zéro qui définit exactement
- le nombre de caractères du code barres.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>-1</emphasis>: Aucune limite de taille pour ce code barres.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>"even"</emphasis>: La taille du code barres doit être un nombre
- de caractères pair.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>"odd"</emphasis>: La taille du code barres doit être un nombre
- de caractères impair.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>array</emphasis>: Un tableau de valeurs entières. La taille du code
- barres doit être exactement égale à une des valeurs dans le tableau.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis>Characters</emphasis>: Une chaine qui contient tous les caractères autorisés
- pour ce code barres. La valeur entière spéciale 128 est autorisée ici, elle signifie
- "les 128 premiers caractères du jeu ASCII".
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>Checksum</emphasis>: Une chaine utilisée comme callback pour valideer la
- somme de contrôle.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Votre validateur de code à barres personnalisé doit étendre
- <classname>Zend_Validate_Barcode_AdapterAbstract</classname> ou implémenter
- <interface>Zend_Validate_Barcode_AdapterInterface</interface>.
- </para>
- <para>
- Comme exemple, créons un validateur qui utilise un nombre pair de caractères pouvant être des
- chiffres et les lettres 'ABCDE'. Une somme de contrôle sera aussi calculée.
- </para>
- <programlisting language="php"><![CDATA[
- class My_Barcode_MyBar extends Zend_Validate_Barcode_AdapterAbstract
- {
- protected $_length = 'even';
- protected $_characters = '0123456789ABCDE';
- protected $_checksum = '_mod66';
- protected function _mod66($barcode)
- {
- // effectuer de la validation et retourner un booléen
- }
- }
- $valid = new Zend_Validate_Barcode('My_Barcode_MyBar');
- if ($valid->isValid($input)) {
- // input semble valide
- } else {
- // input est invalide
- }
- ]]></programlisting>
- </sect3>
- </sect2>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|