Salut à tous.

J'aimerais avoir vos avis sur un script en PHP.

Le but celui ci est d'avoir un class "mère" chargé d'instancier des objets à la demande ( une sorte de fabrique ) afin de les rendre tous accéssible à travers un seul et unique objet
Mais je veux instancier ces objets dynamiquement donc j'utilise __get() et __set()

la class core :
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
 
class core {
 
  public $obj = array();
  public $classArray = array();
 
  public function __construct()
  {
    $this->classArray['Voiture'] = 'Voiture';
    $this->classArray['Mobilette'] = 'Mobilette';
  }
 
 
  public function __get($className)
  {
    if( empty($this->classArray[$className]) ) {
      throw new Exception('Unknow class name');
    }
 
    if( !isset($this->obj[$key]) && !empty($this->classArray[$className]) ) {
      $this->{$$className} = $className;
    }
    return $this->obj[$className];
  }
 
 
  public function __set($key,$value)
  {
    $this->obj[$key] = new $value($this);
  }
 
}

ensuite voilà l'utilisation

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$core = new core();
$core->Voiture->Avance();
j'ai bien sur une class Voiture avec une méthode Avance() !


Le script fonctionne correctement mais j'aurais bien aimé avoir d'autre points vue, peut etre y a t'il de meilleures solutions, ou peut etre que cette solution peu ou provoque déjà des problemes que je ne vois pas ..

Merci d'avance.