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 :

Classes et variables externes [PHP 5.3]


Sujet :

Langage PHP

  1. #21
    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 Construt et destruct
    Grunk,

    Comprends pas..... même quand tu fais un new tu passes (parfois.... mais c'est souvent mon cas.....) des paramètres, donc il te faut des parenthèses.
    Peux-tu me renvoyer la source la + litigieuse annotée ?
    Ce serait constructif....

    @+

    jecrapahute@gmail.com
    Esteban

  2. #22
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Je cause pas français ou bien ?

    Je te redis que le problème de tes constructeur ne viens pas des parenthèse.

    Tu écris des constructeur : construct() au lieu de __construct() donc forcément tes classe écrites comme cela n'appelle jamais le "constructeur" que tu as écris
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #23
    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 Construct et Destruct
    Pour le déstructeur OK mais c'est tellement peu utilisé bien que moi, je les déclare toujours.
    Mais pour les constructeurs, si tu écrits:

    function mafunct($p&,$p2) {}

    Cela revient à dire que tu ne peux pas avoir d'instruction dans le constructeur...

    Tu parles français je le comprends aussi, c ma langue maternelle mais o n'est pas sur la même longueur d'onde.
    Je viens de balayer lessources que je t'ai envoyées et j'ai la plupart du temps:

    function ma function($p1,$p2)
    { rttrtrtrtdrt
    fffffffffffff

    etc....
    }

    C'est même - si je ne me trompe - la fonction d'un constructeur....
    Esteban

  4. #24
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Ta classe Signon par exemple n' a aucun constructeur valide. Alors que ta fonction construct (qui n'est pas le constructeur) semble elle faire des choses
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #25
    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 Construct Destruct
    Grunk,

    Tu n'as peut être pas regardé suffisamment bas (ou alors tu n'avais pas les dernières versions) car je sépare les classes indépendantes les unes des autres des classes qui sont dépendantes d"une autre instanciées (obligatoirement) avant.

    Donc dans Skelet j'ai
    :
    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
    					$this->member = new Member($this, $this->debug) ;
    //					if ($this->member) echo "OK " ; else echo "KO" ; =====> retourne OK
    					$this->member->execute() ;     // donne un user_error dans le log.php
    					
    /**
    * 					Exécution dépendante des classes instanciées dans la méthode[execute]
    *       			---------------------------------------------------------------------
    */
    					$this->post_execute() ;
    					
    			} catch (Exception $E) { 
    			   		die("SKELETON ERROR: " . $this->myException->display_exception($E) . "<br/>");
    				}
           	}
    		
    /**
    * Post_execute: toutes les classes sont instanciées et prêtes à recevoir les instructions du visiteur !
    * =============
    */	
    	function post_execute()
    	{
    /**
    * 		Instanciation de la classe Signon et inteception éventuelle des événemets de Signin/login/Logout (laquelle dépends MEMBER)
    *       --------------------------------------------------------------------------------------------------------------------------
    */
    		$signon = new Signon($this, $this->debug) ;
    		$signon->execute() ;
    	
    	}
    Car Signon fait des accès à Membre .... et je me casse les dents dessus pour le moment raison pour laquelle je t'ai demandé ce matin si un enfant d'un parent avec 2 lignées pouvait accéder une méthode de l'autre, donc de son frère ou sœur.....

    Voilà, je pense avoir répondu à ta question et je cherche tjs des construct(){}

    Je n'en ai pas encore trouvé.....

    @+ mais partiellement absent cet aprem
    Esteban

  6. #26
    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 Construct Destruct
    Voici les displays des instanciations:

    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
    Skeleton Starting
    Array ( [SCREEN] => index [TITLE] => Bienvenue sur le site de [Jecrapahute]! [SUBTITLE] => Les non-membres désireux de nous contacter sont priés de le faire [FORM] => [MENU] => index [SUBMENU] => index [KLIMSG] => Bienvenue sur le site de [Jecrapahute]! [MUSTMBER] => 0 )
    Key[SCREEN] => Value[index]
    Key[TITLE] => Value[Bienvenue sur le site de [Jecrapahute]!]
    Key[SUBTITLE] => Value[Les non-membres désireux de nous contacter sont priés de le faire]
    Key[FORM] => Value[]
    Key[MENU] => Value[index]
    Key[SUBMENU] => Value[index]
    Key[KLIMSG] => Value[ Bienvenue sur le site de [Jecrapahute]!]
    Key[MUSTMBER] => Value[0]
    Skeleton Executing
    ===> Instanciating Environ
    Key[0] => Value[index]
    Key[1] => Value[Bienvenue sur le site de [Jecrapahute]!]
    Key[2] => Value[Les non-membres desireux de nous contacter sont pries de le faire]
    Key[3] => Value[]
    Key[4] => Value[index]
    Key[5] => Value[Bienvenue sur le site de [Jecrapahute]!]
    Key[6] => Value[0]
    Key[7] => Value[2010-06-01 17:48:31]
    ==========> Instanciating Screen
    ==========> Instanciating myException
    ==========> Instanciating Member
    Affichage écran
    ==========> Instanciating Signon
    Skeleton Starting
    1
    Array ( [email] => jecrapahute@gmail.com [psw]
    Je constate que pour une itération de ma page, le Skelet démarre 2X...

    Il faut vraiment que je me mette la philosophie Web & OOP en tête ...

    @+
    Esteban

  7. #27
    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 Parent avec 2 lignes de fils/fillles
    Grunk,

    Je suis entrain d'essayer de"accéder à une méthode de la fille à partir du frère.
    Quand, j'instancie le frère, je passe le résultat de l'instanciation de la soeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /**
    * 		Signon dépend de Membre
    *       -----------------------
    */
    		$signon = new Signon($this->member, $this->debug) ;
    		$signon->execute() ;
    Quand dans Signon, j'essaye d'accéder la soeur, voici ce que j'obtiens:

    [15-Jun-2010 14:07:55] PHP Notice: skeleton[1] : email & Psw OK ! in F:\WebSites\jecrapahute\class\signon.php on line 64
    [15-Jun-2010 14:07:55] PHP Notice: gu_member acccessed AAAAA! in F:\WebSites\jecrapahute\class\newMember.php on line 98
    [15-Jun-2010 14:07:55] PHP Fatal error: Call to undefined method Signon::dbSelect() in F:\WebSites\jecrapahute\class\newDB.php on line 150
    En 64, ce la veut juste dire que les 2 champs sont corrects

    Dans signon, j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($this->row = ( Member::gu_member($email, md5($psw) ) ) )
    Qui la classe Membre instancié et qui a fait le display
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     gu_member acccessed AAAAA
    Donc, j'accède à mon logivciel de DB....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       public function dbQuery($query) 
       {	$this->query = $query ;
       
       		if ($this->debug)
    			user_error("MYsql[Query]" , E_USER_NOTICE) ;
    
    	 	// Verifier s'il y'a une connexion établie à un serveur et que la DB est séléctionné" 
       		// ----------------------------------------------------------------------------------
    	 	if  ($this->idConn == NULL) 
    ligne 150			{	$this->dbSelect() ;
    	 		}//end if
    Mais faut croire que je n'y accède pas de la bonne façon car il teste s'il a une conexion et sinon il l'a crée.... à cet instant le $this->DbSelect foire

    dbSelect appartient à ma classe MYsql et non à Signon...., c'est 150

    Je ne sais plus, je vais me changer les idées un peu !

    Comment puis-je faire ?

    Je pars pour 2 h; espère te lire à mon retour.
    Esteban

  8. #28
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Comment puis-je faire ?
    Comme je te l'ai déjà dis
    Tu passe ton objet Mysql en argument au constructeur de la classe qu ien aura besoin.

    Si tes deux classe filles en ont besoin tu peux le passer à la classe mère , il sera ainsi facilement accessible

    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
     
    class Mere
    {
    	protected $mysql;
     
    	public function __construct($objMysql){
    		$this->mysql = $objMysql;
    	}
    }
     
    classe fille1 extends Mere
    {
    	public function __construct(){
     
    	}
     
    	public function bidon()
    	{
    		$this->mysql->DbSelect();
    	}
    }
     
    classe fille2 extends Mere
    {
    	public function __construct(){
     
    	}
     
    	public function encorebidon()
    	{
    		$this->mysql->DbSelect();
    	}
    }
     
    $mere = new Mere($sql);
    $fille = new fille1;
    $fille->bidon();
    Evidement exemple à adapter à tes besoins
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #29
    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 Class OOP vous avez dit facile ?
    Grunk,

    Si tu te souviens.... on ne sait jamais.... j'ai le schéma

    Skeleton => Environ = MYsql qui est une des branches filles.

    J'en ai une autre, dans laquelle il y a la classe Membre qui a besoin de MYsql

    Je vais relire ton code mais j'ai en effet avec 'ma méthode' d'instanciation, j'ai des objects uniques dont j'ai l'adresse dans Skeleton.....

    Enfin, je vais y réfléchir avec ton code sous les yeux... merci
    Esteban

  10. #30
    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 Class OOP vous avez dit facile ?
    Grunk,

    Le code pour instancier la 2 ième branche est écrit et en principe exécuté mais les user_error dans le __construct n’apparaissent pas dans le log.
    Je rentrais dans le code de cette classe Signon car les (isset($_POST[bouton connect]) s'y trouvaient !
    J'ai remonté cette interception dans le skelet et dès l'interception réalisées, j'instancie Signon et j'essaye de brancher à une méthode, en vain.

    Le code du _construct est clair et doit me répondre dans le log!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	function construct($db, $debug)
    	{	$this->debug   = true ;                 
    		$this->db      = $db  ;
     		
    		if (is_resource($db)) 
    			user_error("Signon: This is a ressource" , E_USER_WARNING) ;
    		else 
    			user_error("Signon: This isn't a ressource" , E_USER_ERROR) ;
     
    //		if ($this->debug)
    			user_error("Signon instanciared !" , E_USER_NOTICE) ;
    	}
    Donc, j'en conclus que je n'instancie pas car 1) je devrais avoir une warning dans le log si ok et 2) un stop si KO !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [15-Jun-2010 16:32:59] PHP Notice:  Signon[0]: connection asked! in F:\WebSites\jecrapahute\class\newSkelt.php on line 180
    [15-Jun-2010 16:32:59] PHP Notice:  Skelet[Connect] in F:\WebSites\jecrapahute\class\newSkelt.php on line 206
    
    [15-Jun-2010 16:32:59] PHP Fatal error:  Call to a member function connect() on a non-object in F:\WebSites\jecrapahute\class\newSkelt.php on line 207
    En 180 j'ai l'interception du $_POST

    En 207 j'essaye de brancher à une métode de la classe signon et le message est clair....

    Je te mets les 2 sources en pièces attachées ce sera sans doute + facile pour toi.
    Si je trouve, je t'envoie un msg, ok ?

    Je ne bouge plus ajd'hui.

    @+
    Fichiers attachés Fichiers attachés
    Esteban

  11. #31
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Si tu te souviens.... on ne sait jamais.... j'ai le schéma

    Skeleton => Environ = MYsql qui est une des branches filles.
    C'est en autre pour ça que je t'ai dis plusieurs fois que ça n'avait aucun sens.

    Il n'y a aucun rapport objet entre skeleton et mysql , Mysql ne devrait pas dériver de Skeleton (ou d'Environ d'ailleurs).

    Des classe qui hérites les unes des autres doivent avoir de vrai relations entre elles. On dérive pas parce classe X à une méthode ou une propriété que je veux utiliser dans classe Y.

    Mais là on tourne en rond

    Edit

    Donc, j'en conclus que je n'instancie pas car 1) je devrais avoir une warning dans le log si ok et 2) un stop si KO !
    Franchement je veux bien être gentil 2 min mais là faut ptet arreter de me prendre pour une bille hein !

    Je t'ai explique ce matin
    ici et ici et ici que tu avais un problème de constructeur et donc d'instanciation ...

    je veux bien essayer de t'aider mais si tu ne lis que ce que tu as envie de lire , je peux rien faire pour toi
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #32
    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 Class OOP vous avez dit facile ?
    Grunk,

    J'ai simplement déplacer l'instanciation de Signon avant le code d'interception des boutons de la forme.
    Les displays dans le log ont changé mais Signon n'est tjs pas instanciés !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [15-Jun-2010 16:55:38]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    12
     PHP Warning:  Missing argument 3 for Skeleton::__construct(), called in F:\WebSites\jecrapahute\class\newSkelt.php on line 178 and defined in F:\WebSites\jecrapahute\class\newSkelt.php on line 66
    [15-Jun-2010 16:55:38] PHP Notice:  Undefined variable: debug in F:\WebSites\jecrapahute\class\newSkelt.php on line 69
    [15-Jun-2010 16:55:38] PHP Notice: Signon[0]: connection asked! in F:\WebSites\jecrapahute\class\newSkelt.php on line 187 [15-Jun-2010 16:55:38] PHP Notice: Skelet[Connect] in F:\WebSites\jecrapahute\class\newSkelt.php on line 206 [15-Jun-2010 16:55:38] PHP Notice: >>>>>>>>>>>>>>>> connect <<<<<<<<<<<<<<<<<<< in F:\WebSites\jecrapahute\class\signon.php on line 71 [15-Jun-2010 16:55:38] PHP Notice: skeleton[1] : email & Psw OK ! in F:\WebSites\jecrapahute\class\signon.php on line 75 [15-Jun-2010 16:55:38] PHP Fatal error: Call to a member function dbQuery() on a non-object in F:\WebSites\jecrapahute\class\signon.php on line 59
    Ce qui m'inquiète tjs depuis 2 jours sont les messages en gras :

    Voici la différence de coding dans Skelet:
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    /**
    * 		Signon dépend de Membre
    *       -----------------------
    */
    		$this->signon = new Signon($this->db, $this->debug) ;
    		$this->signon->execute() ;
    					
    /**
    * 					A ce moment, mon input est soit inséré ou la page existante est éventuellement mise à jout, maintenant il faut l'afficher
    *					Affichage de la page .... Instanciation de la classe Signon et inteception éventuelle des événemets de Signin/login/Logout
    *       			--------------------------------------------------------------------------------------------------------------------------
    */
    					$this->displayPage() ;
    /**
    * 					Exécution dépendante des classes instanciées dans cette méthode[execute]
    *       			------------------------------------------------------------------------
    */
    					$this->post_execute() ;
    			} catch (Exception $E) { 
    			   		die("SKELETON ERROR: " . $this->myException->display_exception($E) . "<br/>");
    				}
           	}
    		
    /**
    * Post_execute: toutes les classes sont instanciées et prêtes à recevoir les instructions du visiteur !
    * =============
    */	
    	function post_execute()
    	{	// user_error("POST_EXECUTE" , E_USER_NOTICE) ;   // OK, j'y passe
    /**
    * 		Interception des événements de Signon (includes/signon.php) 
    * 		-----------------------------------------------------------
    */	
     		if (isset($_POST["skelt_connection"]))
    			{//	if ($this->debug)
    ==> 187					user_error("Signon[0]: connection asked!" , E_USER_NOTICE) ;
       				$this->connect() ;
    			}
    		
    		if (isset($_POST["skelt_deconnection"]))
    			{	if ($this->debug)
    					user_error("Signon[1]:[session_destroy]" , E_USER_NOTICE) ;
    				$this->disconnect() ;
    			}
    /**
    * 		Instanciation de la classe Signon et interception éventuelle des événemets de Signin/login/Logout (laquelle dépends de MEMBER)
    *       -------------------------------------------------------------------------------------------------------------------------------
    */
    //		if ($this->debug)
    			{	print("==========> Instanciating Signon" . CRLF );
    			}
    	}
    	
    	function connect()
    206	{	user_error("Skelet[Connect]" , E_USER_NOTICE) ;
    		$this->signon->connect() ; // test
    	}
    Qui cherche trouve ne dit-on pas ?

    Grand merci......
    Esteban

  13. #33
    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 Class OOP vous avez dit facile ?
    Grunk, je ne te prends pas pour une bille , non j'en suis bien loin crois moi.
    Oui tu m'as dit ce matin que le construct ne devait pas avoir des parenthèses.
    Et et et la , je t'ai fait la remarque que si le constructeur avait des paramètres, il fallait bien ces parenthèses.
    J'en suis à +/- 15 classes pour ce site qui sont presque toutes utilisées sans problème... honnêtement je ne vois pas ce que je peux modifier....

    Je viens de faire un test maintenant, je n'instancie pas mais je branche bien à une méthode de cette classe.
    Classe à qui je passe comme paramètres la classe MYsql...
    Donc le $this->db de cette dernière n'est pas un objet comme le log me le dit bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [15-Jun-2010 17:08:35] PHP Notice:  Skeleton Starting in F:\WebSites\jecrapahute\class\newSkelt.php on line 72
    [15-Jun-2010 17:08:35] PHP Notice:  Constructor Skeleton OK ! in F:\WebSites\jecrapahute\class\newSkelt.php on line 261
    [15-Jun-2010 17:08:35] PHP Warning:  Missing argument 3 for Skeleton::__construct(), called in F:\WebSites\jecrapahute\class\newSkelt.php on line 159 and defined in F:\WebSites\jecrapahute\class\newSkelt.php on line 66
    [15-Jun-2010 17:08:35] PHP Notice:  Skeleton Starting in F:\WebSites\jecrapahute\class\newSkelt.php on line 72
    [15-Jun-2010 17:08:35] PHP Warning:  Invalid argument supplied for foreach() in F:\WebSites\jecrapahute\class\newSkelt.php on line 76
    [15-Jun-2010 17:08:35] PHP Notice:  Signon[0]: connection asked! in F:\WebSites\jecrapahute\class\newSkelt.php on line 190
    [15-Jun-2010 17:08:35] PHP Notice:  Skelet[Connect] in F:\WebSites\jecrapahute\class\newSkelt.php on line 206
    [15-Jun-2010 17:08:35] PHP Notice:  >>>>>>>>>>>>>>>> connect <<<<<<<<<<<<<<<<<<< in F:\WebSites\jecrapahute\class\signon.php on line 71
    [15-Jun-2010 17:08:35] PHP Notice:  skeleton[1] : email & Psw OK ! in F:\WebSites\jecrapahute\class\signon.php on line 75
    [15-Jun-2010 17:08:35] PHP Notice:  gu_member acccessed AAAAA!  in F:\WebSites\jecrapahute\class\signon.php on line 53
    [15-Jun-2010 17:08:35] PHP Fatal error:  Call to a member function dbQuery() on a non-object in F:\WebSites\jecrapahute\class\signon.php on line 59
    Je vais relire tes messages pour les parenthèses, j'ai un livre PHP5, je vais y jeter un coup d’oeil .....
    Esteban

  14. #34
    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 Class OOP vous avez dit facile ?
    Ok pour les __ construct dans Signon.....
    Je te présente mes plates excuses.......
    Esteban

  15. #35
    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 Hip Hip Hourra
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [15-Jun-2010 17:35:03] PHP Notice:  Skeleton Starting in F:\WebSites\jecrapahute\class\newSkelt.php on line 72
    [15-Jun-2010 17:35:03] PHP Notice:  Constructor Skeleton OK ! in F:\WebSites\jecrapahute\class\newSkelt.php on line 261
    [15-Jun-2010 17:35:03] PHP Notice:  Signon instanciated ! in F:\WebSites\jecrapahute\class\signon.php on line 28
    [15-Jun-2010 17:35:04] PHP Notice:  Signon[0]: connection asked! in F:\WebSites\jecrapahute\class\newSkelt.php on line 190
    [15-Jun-2010 17:35:04] PHP Notice:  Skelet[Connect] in F:\WebSites\jecrapahute\class\newSkelt.php on line 206
    [15-Jun-2010 17:35:04] PHP Notice:  >>>>>>>>>>>>>>>> connect <<<<<<<<<<<<<<<<<<< in F:\WebSites\jecrapahute\class\signon.php on line 71
    [15-Jun-2010 17:35:04] PHP Notice:  skeleton[1] : email & Psw OK ! in F:\WebSites\jecrapahute\class\signon.php on line 75
    [15-Jun-2010 17:35:04] PHP Notice:  gu_member acccessed AAAAA!  in F:\WebSites\jecrapahute\class\signon.php on line 53
    [15-Jun-2010 17:35:04] PHP Notice:  skeleton[7] : invalid ID or Psw in F:\WebSites\jecrapahute\class\signon.php on line 97
    Le reste est pour moi... tester, tester et encore tester.....

    Sorry encore.....
    Esteban

  16. #36
    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 Lpgique OOP
    Si il y a une logique entre ces 2 classes, Skeleton centralize TOUT donc les accès DB aussi..... mais Environ vient avant MYsql car ce dernier dépend des paramètres de connection détecté par Environ.....

    Merci encore de ta patience avec moi..... j'aurai pu tomber bcp + mal

    @+
    Esteban

  17. #37
    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 Class OOP vous avez dit facile ? DB dipatch
    Grunk,

    J'ai une question architecture, hé oui cela m'arrive....

    J'ai une petite dizaine de classe qui accèdent toutes à MYsql.
    J'ai un souci car même si je passe ma classe MYsql vers ma classe MYSQL fille disons.... il faut dans les cas voir si la connection est valide - sinon la créer - et sélectionner la DB - ce qui ne pose pas de problème puisque que je suis mono db - mais il en est autrement pour le queRy...
    Je passe d'une classe à l'autre - je conçois que ce soit critiquable - mais j'imagine une class - ette .... (tu auras compris) au niveau du Skelet dans laquelle tu enregistres la table souhaitée en variable statique - ou de session - et qui ferait le dispatch de la classe had hoc.

    En gros cette classe ferait:

    1) L'enregistrement de la classe dès instanciation
    2) Le dispatch vers la nouvelle classe souhaitée....

    Donc pour chaque statement MYsql, je remonterais au niveau Père avec le nom de la table/classe souhaitée/accédée au niveau de ce dispatcher.
    Comparaison serait faite et dispatch vers celle-ci.

    Mais chaque classe fille devrait recevoir un tableau avec :
    A) l'adresse de ce dispatcher quoique je pense qu'on puisse l'adresser sans passer par là
    B) l'adresse MYsql comme d'hab

    Par contre afin d'éviter le bouclages, celle-ci doit séparer sa requête et le point d'entrée après dispatching....

    Je ne sais si c'est clair....

    Mais qu'en penses-tu ?

    Esteban

  18. #38
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Perso pour ce genre de problématique j'utilise le design pattern registry.

    Un registre est un conteneur pour stocker des objets et des valeurs dans l'espace d'application. En stockant la valeur dans le registre, le même objet est toujours disponible partout dans votre application. Ce mécanisme est une alternative à l'utilisation du stockage global.
    Ma classe mysql est seule dans son coin.
    Elle est instanciée dans l'index.php de mon site (point de passage obligatoire) puis l'instance est placée dans un registre.

    Là ou j'ai besoin de ma connexion mysql je fais appel au registre. J'utilise simple la classe registry du zend_framework (mais pas le framework entier).

    C'est à mon avis le plus simple et le plus juste en terme de POO
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  19. #39
    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 Class OOP vous avez dit facile ?
    Donc mon idée n'était pas conne mais je dois décharger une classe de Zend ?

    Merci.... mon chiien veut sa promenade... @+
    Esteban

  20. #40
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par ETVigan Voir le message
    Donc mon idée n'était pas conne mais je dois décharger une classe de Zend ?

    Merci.... mon chiien veut sa promenade... @+
    Pas forcément une classe de ZF , y doit en existe rdes dizaine toutes faites un peu partout sur internet
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/08/2008, 19h04
  2. variables extern dans les classe
    Par sali lala dans le forum Eclipse
    Réponses: 1
    Dernier message: 09/04/2008, 23h21
  3. Réponses: 7
    Dernier message: 24/01/2007, 10h01
  4. Réponses: 3
    Dernier message: 12/10/2005, 09h23
  5. problème variable extern
    Par HeKaz dans le forum C
    Réponses: 14
    Dernier message: 08/01/2003, 01h44

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