IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Création de classes à la volée...


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Création de classes à la volée...
    ...à partir d'un fichier xml

    Bonjour,
    sauriez vous s'il est possible de faire cela (en l'état, non, mais une autre syntaxe est peut être possible)


    $racine = simplexml_load_file("objets.xml");
    $classes = $racine->classe;

    foreach($classes as $a)
    {
    ######################################################################
    class $a["nom"] extends Util
    {
    foreach($a->champ as $b) { var $b["nom"]; }

    var $Cle = $a["cle"];
    var $TblName = strtolower($a["nom"]);

    function $a["nom"]($Id = 0)
    {
    }
    }
    ######################################################################


    Merci de votre aide.
    Julien

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    tu peux construire ta classe dans une chaine et ensuite tu fais un eval de ta chaine.
    Mais le procédé est loin d'être performant (parse xml + eval)...

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    ou alors tu génère dans un fichier ta classe et ensuite tu fais un include.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    la 2nde solution est plus performante (en quoi ne l'est-ce pas d'ailleurs pour la 1ere?)
    Merci en tout cas.
    Julien

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Le parsing xml prend du temps.
    Le concept de générer du code à partir de XML est sympa, mais je ne le ferais qu'une fois pour toute pour la classe en question. Les performances ne seront pas au top si le serveur doit à chaque requete se coltiner le parsing de xml, ecrire dans un fichier, charger le fichier...
    Après tout dépend de ce que tu veux faire avec...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    l'idée est de créer une classse générique pour toutes mes objets pour laquelle j'ai des fonctions
    - de select
    - de insert
    - de update
    - de delete

    ex, pour mon object client :
    <!-- CLASSE CLIENT -->
    <classe nom="client" cle="id_client">
    <champ label="Id" nom="id" type="long" sql="id_client" obligatoire="false">
    <form type="hidden" />
    </champ>
    <champ label="Intitule" nom="intitule" type="string" sql="int_client" message="intitule" obligatoire="true">
    <form type="text" maxlength="255"/>
    </champ>
    </classe>

    et ma classe générique crée tout à partir de cela, j'ai ensuite juste à faire:
    include_once("ouiffi.class.php");
    $c = new client(1);

    et hop j'ai mon objet client avec tous ses attributs

    le jour où je créer une classe "reference", je n'ai qu'a completer mon fichier xml et hop tout est ok.

    actuellement, j'ai un fichier php par classe dans lesquels j'ai à chaque fois mes fonctions d'insert, de delete... c moins souple .

    comprende?

    merci de me tenir informé si je fais fausse route.
    julien

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    j'ai bien compris. En gros tu fais un truc à la propel ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    exactement.
    c bien propel ?
    c con , je ne connaissais pas...

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ben, je suis toujours en PHP4 donc je ne peux te dire, mais ca fait la meme chose que toi, en mieux ^^

Discussions similaires

  1. [RMI] problème Création *_stub.class et *_skel.class
    Par philobedo dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 29/05/2006, 20h03
  2. Création de classe exception
    Par HNT dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 03/01/2006, 15h53
  3. [ImageMagick] Création d'image à la volée
    Par gdawirs dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 21/11/2005, 15h53
  4. [JMenuBar] Création d'objets à la volée
    Par Rampa dans le forum Composants
    Réponses: 5
    Dernier message: 29/06/2005, 13h56
  5. [IB][IBQUERY][D7 pro] Création de Triggers à la volée.
    Par N1bus dans le forum Bases de données
    Réponses: 6
    Dernier message: 13/10/2004, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo