au moins comme ça: eval("$date = new Date$langCode();");
thierry
Gromitt
On 11 avr, 10:52, Michael wrote:
[...]
j'aurai aimé faire quelque chose du genre
$date = new Date$langCode();
C'est possible ça en PHP?
Merci d'avance
Mike
Une solution sans doute plus propre est de passer par un systeme de Factory :
abstract class Date { public static function GetNew($langCode) { switch ((string) $langCode) { case 'FR': return new DateFR(); case 'US': return new DateUS(); }
throw new Exception('...'); // peut aussi etre un "return new DateFR();" par defaut } }
final class DateFR extends Date { // ... }
final class DateUS extends Date { // ... }
$date = Date::GetNew($langCode);
Ce qui va t'éviter de trainer des "switch" à plusieurs endroits dans le code.
Note : je n ai pas testé ce code, il se peut qu'il y ait des typos ou des aneries.
On 11 avr, 10:52, Michael <michael.at.gmail.dot....@news.free.fr>
wrote:
[...]
j'aurai aimé faire quelque chose du genre
$date = new Date$langCode();
C'est possible ça en PHP?
Merci d'avance
Mike
Une solution sans doute plus propre est de passer par un systeme de
Factory :
abstract class Date
{
public static function GetNew($langCode)
{
switch ((string) $langCode)
{
case 'FR': return new DateFR();
case 'US': return new DateUS();
}
throw new Exception('...'); // peut aussi etre un "return new
DateFR();" par defaut
}
}
final class DateFR extends Date
{
// ...
}
final class DateUS extends Date
{
// ...
}
$date = Date::GetNew($langCode);
Ce qui va t'éviter de trainer des "switch" à plusieurs endroits dans
le code.
Note : je n ai pas testé ce code, il se peut qu'il y ait des typos ou
des aneries.
Une solution sans doute plus propre est de passer par un systeme de Factory :
abstract class Date { public static function GetNew($langCode) { switch ((string) $langCode) { case 'FR': return new DateFR(); case 'US': return new DateUS(); }
throw new Exception('...'); // peut aussi etre un "return new DateFR();" par defaut } }
final class DateFR extends Date { // ... }
final class DateUS extends Date { // ... }
$date = Date::GetNew($langCode);
Ce qui va t'éviter de trainer des "switch" à plusieurs endroits dans le code.
Note : je n ai pas testé ce code, il se peut qu'il y ait des typos ou des aneries.