Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2007, 17h34   #1
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
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 :
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
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 14h27   #2
Rédacteur
 
Homme Jean-Pierre
Inscription : août 2005
Messages : 333
Détails du profil
Informations personnelles :
Nom : Homme Jean-Pierre
Âge : 26
Localisation : Suisse

Informations forums :
Inscription : août 2005
Messages : 333
Points : 442
Points : 442
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
__________________
Mes articles DVP : http://jp-grossglauser.developpez.com
Guardian_7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2007, 13h46   #3
Membre du Club
 
Développeur Web
Inscription : décembre 2005
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2005
Messages : 110
Points : 45
Points : 45
Merci Guardian
fadeninev est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h04.


 
 
 
 
Partenaires

Hébergement Web