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 :

[POO]Classes PHP5 : Chargement dynamique avec __autoload ou inclusion statique ?


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [POO]Classes PHP5 : Chargement dynamique avec __autoload ou inclusion statique ?
    Bonsoir,

    La méthode magique __autoload permet de charger dynamiquement tout fichier source comportant une classe PHP 5.

    Cette méthode est très pratique, mais selon les commentaires qu'on peut lire sur le site de PHP (entre autres), cette manière d'inclure les classes aurait pour principal défaut sa lenteur d'exécution...

    Je parle au conditionnel, car cela reste vraiment relatif au nombre de classes appellées, et du contexte (perso, je n'ai jamais constaté, à vu d'oeil, un ralentissement notable).

    ...Dans ces mêmes commentaires, on propose des fonctions de mise en cache des noms de fichier... donc tant qu'à faire, pourquoi ne pas inclure statiquement toutes les classes utilisées dans un seul fichier (lorsque le nombre de classe est raisonnable) et inclure systématiquement ce fichier dans le contexte ?

    Quelqu'un a des retours d'experience là-dessus ?

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    principal défaut sa lenteur d'exécution...
    Oui cette methode est peut etre un peu plus lente, mais elle aporte un confort d'utilisation apreciable

    je me rapelle avoir lu un article qui disait que cette méthod etait lente
    ba forcement quand on parcours recursivement des dossiers pour trouver le bon de fichier ca peu pas aller vite
    et à la fin de l'article on arrive a un simple fichier cle-valeur(nom de classe - lien)
    et la c'est forcement plus rapide

    pour ma part je me base sur un fichier xml et pour l'instant pas de gros ralentissement en vue(mais je suis pas sur un vrai serveur)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jeff_!
    forcement quand on parcours recursivement des dossiers pour trouver le bon de fichier ca peu pas aller vite
    La récursivité est discutable puisque l'inclusion est sensée se faire à partir de l'INCLUDE_PATH de PHP (et pas depuis un répertoire racine particulier, en principe)...

    Pour ta solution XML, je suppose que tu utilises les fonctionnalités à disposition (DOM ou SimpleXML) pour parser ton fichier XML, ou alors ce fichier XML est exploité à un autre niveau ? (IDE, serveur ou contexte d'utilisation...) ??

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Moi je ne m'en sert pas pour une seule raison :
    Ce qui n'est pas correctement exprimé, n'est pas correctement maitrisé

    En effet cette fonction est pratique, même extremement pratique, mais bon je prefere faire un include pour tous ce dont j'ai besoin. Et etre ainsi certain de ce que je charge.
    Bien sur on peut me rétorquer que je charge inutilement pas mal de ligne de code. M'enfin pour quel cout ?

    Il est à noter que php5 charge automatiquement les classes qui se trouve dans le même dossier que le dossier d'execution courant et ca c'est vraiment la plaie. Un truc à sa fracasser le crane contre le mur

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Points : 691
    Points
    691
    Par défaut
    En effet cette fonction est pratique, même extremement pratique
    oui
    Bien sur on peut me rétorquer que je charge inutilement pas mal de ligne de code. M'enfin pour quel cout ?
    le cout doit pas etre enorme

    Pour ta solution XML, je suppose que tu utilises les fonctionnalités à disposition (DOM ou SimpleXML) pour parser ton fichier XML, ou alors ce fichier XML est exploité à un autre niveau ? (IDE, serveur ou contexte d'utilisation...) ??
    j'utilse le Dom et les recherches xpath, ce fichier me sert a charge mes class ajouter des class facilement via une certaine interface

Discussions similaires

  1. [POO] Classe php5 et constructeur php4
    Par mathrem dans le forum Langage
    Réponses: 1
    Dernier message: 19/03/2007, 17h10
  2. [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
  3. [POO] Class Défilementa automatique d'images avec animation
    Par rakoto.n dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 14/01/2005, 18h21
  4. [tomcat]chargement dynamique de classes depuis une webapp
    Par alphamax dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/03/2004, 09h59
  5. Problème mémoire avec une dll par chargement dynamique
    Par widze19 dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/12/2003, 13h20

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