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 :

[POO] Faire appel au constructeur de la classe parent


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut [POO] Faire appel au constructeur de la classe parent
    Bonjour,

    J'ai une classe (faite maison) qui hérite de PDO. A la création d'une instance de cette classe je créer mon objet PDO. Mais je pense que je n'appel pas bien le constructeur de la classe parent, puisque quand je fait un var_dump de l'instance, la variable (correspondant à l'objet PDO) est null.
    Voici 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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <?php
    /** Extension of class PDO which log all error message
     * @author Marwan Rabbaa
     * @version 0.1 b 1
     */
    class LogedPDO extends PDO 
    {
    	const ZONE = "UTC"; // timezone
    	const PATH = "/var/log/skyline/pdo.txt" ;
    	const XML_FILE = "/Documents and Settings/mrabbaa/Mes documents/workspace/skyrecon/class/mysql-errror-code.xml";
    	private $dbh; // a string name of database
    	private $date;
    	private $sql; // the SQL query we are trying to execute
    	private $doc; // document DOM for readin error messages
    	private $errorMessage; // a string
    	private $handle = false; // boolean (if file is open)
    	/** Construct the database link 
    	 * @param The host name or ip adress
    	 * @param The database name
    	 * @param The login
    	 * @param The password
    	 */
    	public function __construct($host,$database,$login,$pass)
    	{
    		$this -> dbh = parent :: __construct ('mysql:host='.$host.';dbname='.$database.'', $login, $pass);
    		$this -> doc = new DomDocument();
    		$this -> doc->load(self :: XML_FILE);
    		$this -> handle = fopen(self :: PATH,'a');
    	}
    	/** Execute an SQL querie 
    	 * @return An array 
    	 */
    	public function execute($sql)
    	{
    		$return = array();
    		$this->sql=sql;
    		try 
    		{
    			$smth =$this->prepare($this->sql);	
    			$smth->execute();
    			$result = $smth->fetchAll(PDO :: FETCH_NUM);
    			if(count($result)==0)
    			{
    				$this->setMessage(0);
    			}
    			else
    			{
    				foreach($result as $indice => $tab)
    				{
    					foreach($tab as $key => $value)
    					{
    						array_push($return,$value);
    					}
    				}
    			}
    		} 
    		catch (PDOException $e) 
    		{
    			$this->setMessage($smth->errorCode());
    		}
    	}  
    	private function writeActivity($msg)
    	{
    		date_default_timezone_set(self :: ZONE);
    		$this->date('l dS \of F Y h:i:s A');
    		fopen(self :: PATH, "a");
    		fwrite(self :: PATH, $this->date.$msg);
    	} 
    	/** Set a message String correspondant to a pdo error code
    	 * @param Error code
    	 */
    	private function getMessage($param)
    	{
    		$errors = $this->doc->getElementsByTagName("error");
    		foreach($errors as $node)
    		{ 
    			 if($node->hasAttribute("code") && $node->getAttribute("code") == $param)
    			 { 
    			 	$this->errorMessage = $node -> getAttribute ("value");
    			 }
    		}
    	}      
    	/** Reading method
    	@return The error message in cas of database error */
    	public function writeMessage()
    	{
    		$msg='Erreur MySQL : '.$this->errorMessage;
    		$this->writeActivity($msg);
    	}
    	public function __destruct()
    	{
    		unset($this->doc);
    		fclose($this->handle);
    	} 
    }
    ?>
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

  2. #2
    Membre régulier Avatar de daajack
    Inscrit en
    Octobre 2007
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 97
    Points : 97
    Points
    97
    Par défaut
    les espaces c'est pour éviter les smileys intempestifs ?

    Sinon c'est plutôt :
    Au lieu de :

  3. #3
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    ah bien à savoir ça

    merci
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

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

Discussions similaires

  1. Faire appel à un constructeur d'un objet
    Par ploxien dans le forum Langage
    Réponses: 8
    Dernier message: 03/05/2007, 10h32
  2. Réponses: 2
    Dernier message: 03/06/2006, 12h25
  3. [POO]héritage du constructeur de la classe parente
    Par new_wave dans le forum Langage
    Réponses: 7
    Dernier message: 10/03/2006, 14h25
  4. [POO-Héritage] Appel du constructeur en PHP4.3.2
    Par raoulchatigre dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2005, 15h37
  5. Réponses: 5
    Dernier message: 20/11/2005, 11h15

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