Bonjour,
Sur mon framework maison j'ai des classe de bases d'ou j'étend mes classes contrôleurs. Ces classes de bases permettent un accès au singletons via la méthode __get().
exemple un modèle de contrôleur général qui permet l'accès à la classe mysql:
puis le modèle de contrôleur pour les controleurs d'affichage qui ajoute l'accès à la classe de template
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 <?php class baseControler { function __get($a) { if(isset($this->$a)) { return $this->$a; } else { //on charge le bon objet switch($a) { case 'sql': $this->$a = mysql::getInstance(); break; default: throw new exception('Impossible de charger le sous objet '.$a); } return $this->$a; } } }
et enfin un contrôleur ui qui étend tout ça
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 <?php class uiBaseControler extends baseControler { function __get($a) { if(isset($this->$a)) { return $this->$a; } else { //on charge le bon objet switch($a) { case 'tpl': $this->$a = template::getInstance(); break; default: parent::__get($a); break; } return $this->$a; } } }
Existe-t-il avec Eclipse PDT un moyen d'avoir l'autocompletion de code sur des classe chargées avec la methode __get() ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php class uiTest extends uiBaseControler { function test() { $this->sql->ici pas de code completion } }
Habituellement il gère super bien l'architecture pour trouver ce qu'on appelle et bien autocompleter mais là rien.
Partager