Lancer une classe d'après une variable

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Lancer une classe d'après une variable

par zigz4g » 26 sept. 2006, 23:26

En PHP5 j'avais deja essayer de faire ce systeme.
Il marche, normallement tu peux remplacer le nom de la classe pas une variable.
Voici un tres vieux bout de code de test.
<?php
class Test
{
    public function TestOne()
    {
        echo 'Je suis TestOne<br />';
    }
}

class TestStatic
{
    public static function TestStaticTwo()
    {
        echo 'Je suis TestStaticTwo<br />';
    }
}

$oneclass = 'Test';
$onemethod = 'TestOne';

$object = new $oneclass();
$object->$onemethod();

$static = 'TestStatic';
$static_method = 'TestStaticTwo';

//$static::TestStaticTwo();//KO
//$static::$static_method();//KO
eval("\$static::TestStaticTwo();");//KO mais ne plante pas
?>
Je ne me rappel plus pourquoi j'avais oublier se systeme. Je crois que c'est a cause des static
qui ne marchent pas. Vue que j'utilise les static dans mon code.
Faudrais tester plus de cas pour voir toutes les limitations.

par momox » 26 sept. 2006, 07:26

Ce que je m'empresserais de faire ce midi a ma pause repas ou avant de partir au lycée :D
@+

par Truc » 25 sept. 2006, 22:50

Le meilleur moyen de le savoir est de....................... tester :D

par momox » 25 sept. 2006, 22:25

Donc si $myclass est égal a application, ca va me faire $mynewlcass = new application(); ?
@+

par jeff » 25 sept. 2006, 22:04

salut
si $myclass est une chaine
ceux-ci ne pose pas de problem
$mynewclass = new $myclass(); 

par momox » 25 sept. 2006, 21:58

Merci Truc, je ne pensais pas qu'elle servait a ca cette fonction :P
@+

par Truc » 25 sept. 2006, 21:48

eval() :-k
après vérification des variables... pour que rien d'autre qui ne doit être exécuté ne l'est.

Lancer une classe d'après une variable

par momox » 25 sept. 2006, 21:30

Bonsoir,
dans mes brainstormings d'après lycée, j'ai eu une folle idée pour mon projet.
Après moultes mals de tête, j'ai imaginé un système de modules assez bien plaisant et qui satisferait pas mal de monde et j'en suis venu a une question.
Est il possible de lancer une classe d'après un nom de variable, par exemple en faisant
$mynewclass = new $myclass;
?
Cela me parait un peu farfelu mais si quelqu'un avait un élement de réponse a m'avancer, car la seule structure que j'ai trouvée n'est pas très plaisante a mon gout.
Merci d'avance ;)
PS: a force de penser, va falloir que je prene des actions chez upsa...