Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] jController et ses classes dérivées

Posted by turowbye on 07/15/2007 16:22

Je termine un CRUD générique basé sur le Tutoriel du jForms et jDao. Il s'agit d'une classe de base, parente à une classe d'utilisation du CRUD. Présentement ces deux classes fonctionnement très bien sans un constructeur et peuvent faire l'objet d'un article tutoriel dans le manuel de Jelix.

Mais j'aimerai ajouter un constructeur à ces 2 classes pour éviter une ligne d'instruction qui appel l'initialisation du CRUD dans chaque action.

Si je crée ces constructeurs

classe parent

  public function __construct(){
  } 
  

classe qui hérite

  public function __construct(){
    parent::__construct();
  }  
  

alors j'obtiens le mesasge d'erreur suivant.

 Fatal error: Call to a member function getResponse() on a non-object in C:\xampp\htdocs\jelix\lib\jelix\core\jController.class.php on line 140

Je sais que: la classe jController à le constructeur suivant.

    /**
     *
     * @param jRequest $request the current request object
     */
    function __construct ( $request){
        $this->request = $request;
    }

À partir d'ici je suis perdu! Que dois-je faire?


Windows 2000 - Apache 2.2.4 - PHP 5.2.2

  [Opened] Re: jController et ses classes dérivées

Reply #1 Posted by laurentj on 07/15/2007 18:48

Si tu connais la signature d'une méthode de la classe parente, alors la méthode qui surcharge celle-ci dans la classe fille doit avoir la même signature. Qu'est ce qui t'empèche de faire ça dans ta classe fille ? ;-)

 public function __construct($request){
   parent::__construct($request);
 }

  [Opened] Re: jController et ses classes dérivées

Reply #2 Posted by laurentj on 07/16/2007 10:12

Et alors ? Qu'est ce que ça peut faire ? ce n'est pas parce que tu ne sais rien d'elle qu'il ne faut pas la passer ou l'ignorer. Ce qui compte pour toi, c'est juste de pouvoir faire des choses à l'instanciation et de transférer les bons paramètres au constructeur parent (qui sont en l'occurence ceux que tu reçois).

Bon et puis, il y a une doc de référence pour se renseigner sur ce genre d'informations si vraiment ça te chiffone ;-)

 
Page
  1. jController et ses classes dérivées