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

Langage PHP Discussion :

Variable toujours instanciée [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut Variable toujours instanciée
    Bonjour,

    Je me pose des questions sur mon code (attaché car long)

    Aux lignes 399 - 410 j'ai 3 fonctions destinées à faire le relais entre une class (Signon instanciée) et Membre qui serait instanciée ligne 238

    Hors le comportement de ma page est celui d'une variable non-instanciee...

    Je ne parviens pas à faire exécuter mes méthodes membre->gu_XXXX

    J'ai ouï dire qu'il existait sur le net des classes pouvant faire le relais entre X classes enregistrées dans un système de container....
    J'ai cherché 2h hier et à part une extrait de Zend je n'ai rien trouvé d'autre, même pas sur ce dernier site.... Ou j'ai mal cherché !

    Avez-vous quelque chose à me proposer ?

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Je ne sais pas comment tu parviens à complexifier quelque-chose qui est très simple.

    Je t'ai déjà répondu à ce problème sur ton post précédent, tu n'as pas instancié logging.

    La cause est assez évidente, tu fais l'instanciation dans execute, ca veut dire que l'appel de isrt_log est fait avant l'appel de execute. Si t'as qu'une instance de logging fais un singleton ou instancie le dans ton constructeur.

  3. #3
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut OOP instanciation
    Non Thomas,

    Execute ne fait rien dans ce cas....

    Je viens d'avoir le même genre de situation avec Membre mais que j'ai résolu dans un 1er temps en remontant le Gu_ au niveau du Skelt et en faisant le dispatcher....
    D'ou ma question sur une classe de container pouvant jouer ce rôle....

    Voici le début de la classe Loggging avec execute qui ne fait qu'un user_error....
    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
    class Logging extends Skeleton
    { private $debug, $table, $db ;
    
    /**
    * Skeleton Constructor
    *
    */
      function __construct( $db , $debug = true )
      { 	$this->debug = $debug ;
      		$this->db 	 = $db ;
      		$this->table = "log" ;
    		
    		if ($this->debug)
    			user_error("Constructor LOGGING OK") ;			
      }
    
      function execute()
      {		if ($this->debug)
    			user_error("Executor LOGGING OK" , E_USER_NOTICE) ; 
      }
    /**
    * Skeleton Destructor 
    *
    */	
          
      function __destruct()
      {    	if ($this->debug)
    			user_error("logging - Destructor", E_USER_NOTICE) ;	
      }
    J'ai le même code dans Membre

    require_once $_SERVER['DOCUMENT_ROOT'] . "/class/newDB.php";
    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
    class Member extends Skeleton 
    { 	var $dbInst, $query, $num, $fetch, $backlink, $password ;
    /**
    * Skeleton Constructor
    *
    */	
    	function __construct( $dbInst, $debug )
      	{ 	$this->debug  = false   ;                   
    		$this->dbInst = $dbInst ; // parent::getDBhandler() ;
    		if ($this->debug)
    			user_error("Member - Constructor OK" , E_USER_NOTICE) ;
      	}
    	
    /**
    * Skeleton Executor [For test purpose, not needed in this case !]
    *
    */	
    	function execute()
    	{	/* user_error("Class Member Accessible !" , E_USER_WARNING) ; */ }
    
    /**
    * Skeleton Destructor
    *
    */	
    	function __destructor()
    	{	$user_error("Member - Destructor", E_USER_NOTICE) ;	}
    Mais là je m'en suis sortit finalement car je passe à membre le pointeur vers la classe DB mais OOP ne réduit-il à passer des pointeurs à gauche et à droite ?
    Non, je ne pense pas....

    Merci de ta réponse.

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Mais là je m'en suis sortit finalement car je passe à membre le pointeur vers la classe DB
    Tu pourrais utiliser un singleton.
    OOP ne réduit-il à passer des pointeurs à gauche et à droite ?
    Je ne comprend pas le sens de cette question, que signifie une réduction de programmation objet ? Veux-tu savoir si les performances sont atténuées ? Non je ne pense pas.

  5. #5
    Débutant Avatar de ETVigan
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2010
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2010
    Messages : 660
    Points : 170
    Points
    170
    Par défaut OOP
    Thomas,

    Non, je ne parle pas de performance en terme de "temps de réponse".... mais de la performance de programmation, je ne suis plus novice mais pas expert pour autant en OOP mais je constate que je passe de + en + des pointeurs un peu partout....

    J'ai une classe Skeleton supposée centraliser les demandes et X classes clients qui sont en singleton en dessous...
    Ma classe DB et Environ (de laquelle dépend DB) sont en singleton aussi en dessous de skeleton.

    Je ne veux plus (cela me semble bien exigent) de pointeurs, je suis entrain d'en faire un sac de noeud...

    Esteban

  6. #6
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Non, je ne parle pas de performance en terme de "temps de réponse".... mais de la performance de programmation, je ne suis plus novice mais pas expert pour autant en OOP mais je constate que je passe de + en + des pointeurs un peu partout....

    J'ai une classe Skeleton supposée centraliser les demandes et X classes clients qui sont en singleton en dessous...
    Si c'est des singleton pas besion de passer par ta classe Skeleton.
    Tu fais juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $instance = maclass::instance();

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

Discussions similaires

  1. [9.1] Problème variable toujours à 0 après fonction instr ou position
    Par Farytas dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/03/2015, 15h27
  2. Erreur "NullPointerException" mais la variable est instanciée
    Par mad_gozzilla dans le forum Débuter
    Réponses: 8
    Dernier message: 20/12/2012, 10h48
  3. Réponses: 6
    Dernier message: 18/11/2010, 12h49
  4. Réponses: 7
    Dernier message: 22/02/2007, 17h57

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