IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

[zend_validate] A quoi servent les valeurs des constantes de la classe ?


Sujet :

Zend Framework PHP

  1. #1
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut [zend_validate] A quoi servent les valeurs des constantes de la classe ?
    (re)Bonjour,

    je suis en train de m'intéresser de très près au module Zend_Validate du ZF, et je regarde les différents tutoriels avant de me lancer dans la construction de mes propres validateurs.

    Il y a une chose que je ne comprends pas. Dans l'exemple ci-dessous, à quoi servent les valeurs des constantes qui sont définies au début de la classe ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <php
    class MyValid_PasswordStrength extends Zend_Validate_Abstract
    {
        const LENGTH = 'length';
        const UPPER  = 'upper';
        const LOWER  = 'lower';
        const DIGIT  = 'digit';
     
        protected $_messageTemplates = array(
            self::LENGTH => "'%value%' doit avoir une longueur d'au moins 8 caractères",
            self::UPPER  => "'%value%' doit contenir au moins une lettre majuscule",
            self::LOWER  => "'%value%' doit contenir au moins une lettre minuscule",
            self::DIGIT  => "'%value%' doit contenir au moins un chiffre"
        );
     
        public function isValid($value)
        {
            $this->_setValue($value);
     
            $isValid = true;
     
            if (strlen($value) < 8) {
                $this->_error(self::LENGTH);
                $isValid = false;
            }
     
            if (!preg_match('/[A-Z]/', $value)) {
                $this->_error(self::UPPER);
                $isValid = false;
            }
     
            if (!preg_match('/[a-z]/', $value)) {
                $this->_error(self::LOWER);
                $isValid = false;
            }
     
            if (!preg_match('/\d/', $value)) {
                $this->_error(self::DIGIT);
                $isValid = false;
            }
     
            return $isValid;
        }
    }
    Je veux dire par là, si j'avais par exemple mis la valeur "toto" au lieu de "upper" pour la constante UPPER, qu'est-ce que cela aurait changé ?

    Merci d'éclairer ma lanterne

  2. #2
    Invité
    Invité(e)
    Par défaut
    Hello,

    Cette technique permet simplement de nommer les index de tableaux de manière constante et uniforme.

    Cela facilite le travail des développeurs et la maintenance de l'application sur le long terme.

    Si par exemple, tu changeais la valeur "upper" par "toto", ça n'aurait aucune incidence sur la classe, puisque les index de tableaux sont mappés sur les constantes et non leur valeur.

    Autre particularité, tu retrouveras souvent dans le code source du Zend Framework des méthodes retournant "$this", c'est à dire l'objet lui-même.

    Cette technique permet d'effectuer plusieurs appels successifs au niveau syntaxique (ça s'appelle en anglais une "fluent interface" - interface fluidifiée)) exemple :

    Code php :

    // Fluent interface $db = $this->_db->select()->from('table')->where('x = ?', 1);


    au lieu de :

    Code php :

    $db = $this->_db->select();
    $db->from('table');
    $db->where('x = ?', 1);



    Bye

  3. #3
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2005
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    Merci Guardian

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connaitre les valeurs des constantes VBA
    Par PhunkyBob dans le forum Général VBA
    Réponses: 4
    Dernier message: 14/01/2011, 11h05
  2. Réponses: 8
    Dernier message: 26/04/2010, 16h52
  3. [CR 10] A quoi servent les Templates Fields ?
    Par caviar dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 10/11/2004, 10h52
  4. [C#] A quoi servent les interfaces???
    Par sof_nns dans le forum Windows Forms
    Réponses: 8
    Dernier message: 28/10/2004, 20h51
  5. [VB.NET] Choisir les valeurs des items d'un combo box?
    Par Eithelgul dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/06/2004, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo