Objet PHP, Variable et generation automatique - PHP - Programmation
Marsh Posté le 14-04-2003 à 11:05:33
eval ("$obj=&new ".$MaClasse." ();" );
Sinon va voir du coté du pattern abstract factory
Marsh Posté le 14-04-2003 à 11:18:27
kadreg a écrit : eval ("$obj=&new ".$MaClasse." ();" ); |
Merci mais ça me fais ça :
Parse error: parse error, unexpected '=' in /srv/www/htdocs/directory/System/system.php(368) : eval()'d code on line 1
Quand je fais ça :
eval ("$SYSTEM_DB=&new ".$DB_CLASS." ();" );
Marsh Posté le 14-04-2003 à 11:22:36
samuelp a écrit : |
$SYSTEM_DB doit être substitué. Essaye avec des simples quotes
Marsh Posté le 14-04-2003 à 11:27:59
kadreg a écrit : |
En fait faut mettre un \ devant le $ et ça fonctionne
Merci
Marsh Posté le 14-04-2003 à 11:01:13
Bonjour,
j'aimerai instancier des classes µPHP en fonction de la preference du systeme.
Je m'explique :
J'ai 3 Bases possibles : mysql, Oracle, PostgreSQL
J'ai 3 Classes (DB_MYSQL, DB_POSTGRE et DB_ORACLE) qui herite d'une classe abstraite IDataBase
Dans un fichier de preference nous pouvons specifier 1 de ces 3 bases (en cas d'erreur c POSTGRE qui est pris par defaut)
Je recupere une chaine de caractere de la sorte : "MYSQL", "POSTGRE" ou "ORACLE" en fonction du fichier de Pref
Maintenant pour instancier la bonne classe je fais :
$DB_PREF = "DB_".$VARPREF."()" // $varpref est egal a ORACLE ou POSTGRE ou MYSQL
Quand je fais un echo $DB_PREF j'obtiens par exemple "DB_POSTGRE()"
Helas quand je fais un $DB_OBJECT = &new $DB_PREF ça me chie dans la colle alors que en dure tout vas bien (il me dit : Cannot instantiate non-existent class: db_postgre() in /srv/www/htdocs/directory/System/system.php on line 368 )
Pourtant en dure ça passe : $DB_OBJECT = &new DB_POSTGRE() ;
QQn pourrais m'aider a trouver une solution pour generer une chaine de caracteres automatiquement et exploitable pour l'instancier en tant que classe ?