Partage
  • Partager sur Facebook
  • Partager sur Twitter

POO Parent::_construct

Sujet résolu
    20 juillet 2011 à 13:29:26

    Salut j'ai pas compris lerôle de Parent::__construct dans le code suivant
    class Forum extends CI_Controller
    {
    	private $titre_defaut;
    	
    	public function __construct()
    	{
    		//	Obligatoire
    		parent::__construct();
    		
    		//	Maintenant, ce code sera exécuté chaque fois que ce contrôleur sera appelé.
    		$this->titre_defaut = 'Mon super site';
    		echo 'Bonjour !';
    	}
    	
    	public function index()
    	{
    		$this->accueil();
    	}
    
    	public function accueil()
    	{
    		var_dump($this->titre_defaut);
    	}
    }
    

    Quelqu'un pour expliquer ce que fait constrcut et pourquoi on fait parent ?
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      20 juillet 2011 à 13:31:57

      A tout hasard, ce ne serait pas l'appel du constructeur de la classe parente ?
      • Partager sur Facebook
      • Partager sur Twitter
        20 juillet 2011 à 13:33:23

        Citation : m@tteo78

        A tout hasard, ce ne serait pas l'appel du constructeur de la classe parente ?


        Si, sinon Sekai je te conseils de lire des cours sur la POO, l'héritage est une des bases de la POO.

        Tu n'iras pas loin si tu ne vois pas ce que signifie __construct() en PHP et si tu ne vois pas ce qu'est un constructeur.
        • Partager sur Facebook
        • Partager sur Twitter
          20 juillet 2011 à 14:00:30

          justement je comprends ce que veut dire _construct mais pourquoi la rappeller avec parent ?
          • Partager sur Facebook
          • Partager sur Twitter
            20 juillet 2011 à 14:04:06

            Parce qu'il doit surement y avoir une initialisation de données dans le constructeur de la classe "CI_Controller" ou quelque chose comme ça.

            Le constructeur de la classe mère n'est pas appelé implicitement comme toutes méthodes surchargées d'une classe.

            Donc si l'appel est obligatoire c'est qu'il doit y avoir une raison.

            Laquel?.... je ne sais pas :)
            • Partager sur Facebook
            • Partager sur Twitter
              20 juillet 2011 à 14:12:29

              J'ajoute juste que je travaille sur CodeIgniter ..
              Votre réponse m'a satisfaite Merci bien ^_^
              • Partager sur Facebook
              • Partager sur Twitter
                20 juillet 2011 à 14:18:46

                Constructeur de "CI_Controller"
                <?php 
                        /**
                	 * Constructor
                	 */
                	public function __construct()
                	{
                		self::$instance =& $this;
                		
                		// Assign all the class objects that were instantiated by the
                		// bootstrap file (CodeIgniter.php) to local class variables
                		// so that CI can run as one big super object.
                		foreach (is_loaded() as $var => $class)
                		{
                			$this->$var =& load_class($class);
                		}
                
                		$this->load =& load_class('Loader', 'core');
                
                		$this->load->_base_classes =& is_loaded();
                
                		$this->load->_ci_autoloader();
                
                		log_message('debug', "Controller Class Initialized");
                
                	}
                ?>
                


                Il y a bien des données à initialiser et ici des classes et fichiers à charger.
                • Partager sur Facebook
                • Partager sur Twitter

                POO Parent::_construct

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown