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

MVC PHP Discussion :

Existance d'un objet (register,registry)


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Webmaster
    Inscrit en
    Mars 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2005
    Messages : 42
    Par défaut Existance d'un objet (register,registry)
    Bonjour tout le monde, bonne année

    Voila mon soucis : j'utilise les fonctions Zend::register et Zend::registry pour stocker et appeler mes objets, mais je ne connais pas la fonction qui permet de savoir si un objet a bien été stocker ou non .
    Pouvez-vous m'aider svp?

    Merci d'avance et encore meilleurs voeux

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Bonjour,

    pour savoir si un objet a été mis dans le registre avec le nom $nomObjet, tu peux appeler la méthode Zend::isRegistered($nomObjet). Elle retrourne true si un objet a été stocké avec ce nom, false sinon.

    Maintenant si tu veux savoir si un objet est stocké mais que tu ne connais pas sous quel nom, tu peux essayer de le stocker à nouveau (register) avec n'importe quel nom, et s'il est déjà dans le registre, tu auras une exception.

    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
    45
    46
    47
    /**
         * Registers a shared object.
         *
         * @todo use SplObjectStorage if ZF minimum PHP requirement moves up to at least PHP 5.1.0
         *
         * @param   string      $name The name for the object.
         * @param   object      $obj  The object to register.
         * @throws  Zend_Exception
         * @return  void
         */
        static public function register($name, $obj)
        {
            if (!is_string($name)) {
                throw new Zend_Exception('First argument $name must be a string.');
            }
     
            // don't register the same name twice
            if (array_key_exists($name, self::$_registry)) {
               throw new Zend_Exception("Object named '$name' already registered.  Did you mean to call registry()?");
            }
     
            // only objects may be stored in the registry
            if (!is_object($obj)) {
               throw new Zend_Exception("Only objects may be stored in the registry.");
            }
     
            $e = '';
            // an object can only be stored in the registry once
            foreach (self::$_registry as $dup=>$registeredObject) {
                if ($obj === $registeredObject) {
                    $e = "Duplicate object handle already exists in the registry as \"$dup\".";
                    break;
                }
            }
     
            /**
             * @todo throwing exceptions inside foreach could cause leaks, use a workaround
             *       like this until a fix is available
             *
             * @link http://bugs.php.net/bug.php?id=34065
             */
            if ($e) {
                throw new Zend_Exception($e);
            }
     
            self::$_registry[$name] = $obj;
        }
    N'hésite pas à le dire si je ne suis pas clair, ou bien si je me suis trompé dans mes explications.

  3. #3
    Membre averti
    Profil pro
    Webmaster
    Inscrit en
    Mars 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2005
    Messages : 42
    Par défaut
    Merci, j'ai essayé avec cette fonction mais elle ne me renvoie rien (ni true, ni false) .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo Zend::isRegistered('demande');

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Essaye d'executer ce code là où tu veux lire ton objet dans le registre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reg = Zend::regitry();
    vardump($reg); // ou print_r($reg), c'est comme tu le sens
    ça va afficher le contenu de tout le registre, tu verras bien quels sont les objets stockés et sous quel nom.

    J'ai regardé dans le code de la version 0.2, si tu utilises la version 0.6, le code de cette méthode a peut-être changé.

    Tiens nous au courant.

  5. #5
    Membre averti
    Profil pro
    Webmaster
    Inscrit en
    Mars 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2005
    Messages : 42
    Par défaut
    En fait je suis toujours a la version 0.2 , mais je pense que l'on va passer à la version 0.6 d'ici peu (on a eu quelques problèmes avec et je viens de voir pourquoi dans le forum ^^). J'essaie ça et je te dit ce qu'il en est.

    Merci beaucoup

  6. #6
    Membre averti
    Profil pro
    Webmaster
    Inscrit en
    Mars 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2005
    Messages : 42
    Par défaut
    En fait mon objet est bien stocké, c'est juste que la fonction isRegistered ne me retourne rien , je vais la regarder de plus près.

    PS : Aucune exception ni erreur ne s'affiche.

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

Discussions similaires

  1. Test de l'existance d'un Objet en Vba Excel 2000
    Par Charly910 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/08/2007, 11h07
  2. Cours sur l'existence d'un objet
    Par Nixar dans le forum VB.NET
    Réponses: 1
    Dernier message: 05/05/2007, 14h52
  3. Tester l'existence d'un objet
    Par alexadvance dans le forum Visual C++
    Réponses: 9
    Dernier message: 18/04/2007, 13h52
  4. [débutant] Tester l'existence d'un objet
    Par guidav dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/01/2007, 18h53
  5. [C#][1.1] - Comment tester l'existence d'un objet.
    Par RamDevTeam dans le forum Windows Forms
    Réponses: 10
    Dernier message: 08/07/2006, 12h28

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