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 :

methode magique __autoload()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Par défaut methode magique __autoload()
    Bonjour,
    .
    Mon problème est que mon application a une architecture, c'est à dire que mes fichiers sont rangés dans des répertoires différents.
    Or ainsi, la méthode __autoload() ne marche pas, car en effet l’adressage $class_name.'.php' ne va pas puisque toutes mes classes suivent des chemins différents.
    Comment faites vous alors pour quand même utiliser la méthode __autoload()?

    Merci d'avance pour vos réponse.

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Bonjour,

    Il faut que le chemin d'accès à tes classes puisse être déduit du nom de classe.

    Ainsi, une classe définissant un utilisateur pourrait être dans le fichier ./inc/cls/User.php et être défini comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class inc_cls_User {
        // méthodes et attributs
    }
    En décomposant son nom, tu connaitra son chemin. C'est ce qu'il faudra faire dans la fonction __autoload.

    Code très approximatif : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $classname = "inc_cls_User";
    _autoload($classname) {
        $myPath = str_replace('_', '/', $classname);
        // $myPath = "inc/cls/User"
        $myFile = "./" . $myPath . ".php";
        //$myFile = "./inc/cls/User.php"
        require_once $myFile;
    }

Discussions similaires

  1. methode magique findParent
    Par snyfir dans le forum Zend_Db
    Réponses: 1
    Dernier message: 11/02/2010, 21h42
  2. [METHODE] -> Détection de virus ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 11/02/2004, 17h04
  3. Passage de variable par methode post ?
    Par oazar dans le forum Flash
    Réponses: 33
    Dernier message: 16/10/2003, 17h03
  4. Methode de drcherche a l,interieur de basse de donner texte
    Par philippe V dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 03/12/2002, 10h20

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