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

Symfony PHP Discussion :

Chargement dynamique d'une classe [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut Chargement dynamique d'une classe
    Bonjour,

    J'aimerais savoir comment charger dynamiquement une classe dans mon contrôleur.
    La voie classique ne semble pas fonctionner : (ce code me renvoit donc 'non' ! )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    //get the class name
    $class_name = 'Log'.ucfirst($form['ltype']->getData());
    echo class_exists($class_name,false)?'oui':'non';
    Si j'utilise le 'UniversalClassLoader' et puis le 'loadClass', cela ne fonctionne pas non plus.

    Quelqu'un a t'il une idée ?

    Bonne journée et merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi t'as mis l'autoloader à false ?

    ta classe n'a pas de namespace ?

  3. #3
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Bonjour,

    Ah oui bienvu ! Mais ce là ne marche quand même pas...voici le code "complet" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    use manage\MachineBundle\Entity\LogMachine;
    use manage\MachineBundle\Entity\LogTemperature;
    use manage\MachineBundle\Entity\LogModem;
    ...
    $class_name = 'Log'.ucfirst($form['ltype']->getData());
    echo $class_name; //AFFICHE : LogMachine ou LogTemperature ou LogModem
    echo class_exists($class_name,true)?'oui':'non'; //AFFICHE 'non'
    ...
    Merci de votre aide

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    je pense pas que class_exists prend en compte les use, je vais testé, met le nom complet de la classe

    mais je te conseil de faire un service plutôt ça sera plus joli, j'ai eu se soucis y'a pas très longtemps ça pourra peu etre te servir même si c'est un peu plus fastidieux, ça sera mieux

    http://www.developpez.net/forums/d11...ry-via-entity/

  5. #5
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Salut,

    Bin le problème surtout c'est que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Log = new $class_name;
    Ca me génère un erreur comme quoi la classe n'existe pas ;S
    si j'écris en dur évidement ca fonctionne ! Ca me parait un peu lourdingue de créer un service pour ça !? Est ce vraiment plus propre ? D'autre coté, si il n'y a pas d'autre possibilités...

    Merci

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    j'ai testé et en variable c'est pas pris en compte, par contre en absolu c'est OK

  7. #7
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Voilà,

    En absolu ça fonctionne, même si c'est pas très propre (quoique ?) !

    Merci en tout cas.

    Bonne journée à toi !

    ps: Trouves tu ça impropre ? ;o

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    non ça va, y'a pire
    par contre je trouve ça pas normale qu'on soit obligé de faire en absolue, alors qu'a la mano ça marche

  9. #9
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Bien d'accord...@++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ClassLoader] Chargement dynamique d'une classe -> problème avec packages !
    Par ymerej dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 31/05/2006, 21h37
  2. [RegEx] Trouver les appels statique et dynamique d'une class
    Par jeff_! dans le forum Langage
    Réponses: 8
    Dernier message: 07/04/2006, 16h31
  3. Réponses: 2
    Dernier message: 25/10/2005, 18h03
  4. [CR.NET]Chargement dynamique d'une image
    Par Moah dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 14/12/2004, 11h46
  5. Réponses: 19
    Dernier message: 26/04/2004, 08h54

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