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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    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 confirmé 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
    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 confirmé 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
    Par défaut
    ou alors tu génère dans un fichier ta classe et ensuite tu fais un include.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    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 confirmé 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
    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 averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    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 confirmé 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
    Par défaut
    j'ai bien compris. En gros tu fais un truc à la propel ?

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

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

  9. #9
    Expert confirmé 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
    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, 21h03
  2. Création de classe exception
    Par HNT dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 03/01/2006, 16h53
  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, 16h53
  4. [JMenuBar] Création d'objets à la volée
    Par Rampa dans le forum Composants
    Réponses: 5
    Dernier message: 29/06/2005, 14h56
  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, 15h23

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