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 :

Gestion optimale des includes


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Gestion optimale des includes
    Bonjour
    A la base, dans mon projet PHP, je disposais d'un fichier "includes.php" qui lui contenait tous les includes nécessaires au fonctionnement de l'application. Ces includes étaaient des fichiers (un fichier par classe) se trouvant dans un sous-répertoire (/include...). J'ai voulu le migrer vers Zend Studio et là une chose à laquelle je ne m'intéressait pas avant survient: ce fichier includes n'étant inclus que dans mes fichiers principaux, et pas dans chaque classe, mes classes ne sont pas reconnues. (J'espère que vous me comprenez :p)
    Je pourrais bien sûr importé ce includes dans chaque classe... Ca ne me parrait pas forcément propre car si il y a 100 fichiers dans ce includes.php, alors il va faire 100 x 100 includes... Bien sur ce sont des includes_once, mais tout de meme, derriere le _once une vérification est faite. Qu'en pensez-vous? N'y a-t-il pas une meilleure manière de gèrer cela?
    (Impossibel de préciser par classe ce qui est nécessaire, il y a trop de redondances.)
    Merci...

  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 Re: Meilleure gestion des includes
    Citation Envoyé par lanoix
    (Impossibel de préciser par classe ce qui est nécessaire, il y a trop de redondances.)
    Fastidieux, peut-etre, impossible surement pas. C'est la solution la plus propre.

    Si A utilise B qui utilise C et D =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    A.class
    --------
    require_once('B.class');
    class A {
    }
     
    B.class
    -------
    require_once('C.class');
    require_once('D.class');
    class B {
    }
     
     
    ...

  3. #3
    Membre habitué Avatar de ciesco
    Inscrit en
    Février 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 110
    Points : 127
    Points
    127
    Par défaut
    Moi je fais fichier MotorInclude qu me permet l'inclusion de tous mes includes a base de switch.
    Si tu as prevu de le faire des le depart c'est tres facile apres a inmplementer.

  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
    Sinon tu as l'autoload en PHP5.

    Ceci dit, y'aurait il une quelquoncque contre-indication avec le fait d'inclure toutes ces classes à chaque appel de script ?

  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
    La contre-indication que je vois serait que tu peux inclure des fichiers (i.e. ouverture/parsing/compile/...) dont tu n'aurais pas besoin. D'où l'utilité du autoload de PHP5.

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2003
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Non, la contre indication c'est que mon "petit" projet devient énorme, je n'ai pas encore eu l'occasion de faire le test mais 100 x 100 require_once(classe) te fait perdre du temps par rapport à x 100 require_once(classe)...
    Je parle d'amélioration poussée la...

    L'autoload est une solution que j'ai envisagée mais qui ne me plait pas, car vu le nombre de fichiers, tout n'est pas dans le même dossier, j'ai donc du préciser un tableau de chemin puis parcourir ce tableau et trouver ou se trouve la classe. Je l'utilise pour les classes loadées à la volée, mais toujours en parlant de 100 classes, je ne peux le faire.

    Et mettre pour chaque classe ce qu'elle utilise... Non, c'est impossible
    Et si ca l'était, ca demanderait beaucoup de travail (c'est de cette manière qu'était construit le projet à la base).

    ***

    Après réflexion sur ma propre réponse, j'ai peut-être une solution qui me convient. Un module en ligne de commande est en préparation qui va éliminer du code dans les fichiers PHP en fonction de certains tags. Le but étant d'éliminer du code non nécessaire en production. (En gros.)
    Et comme mon problème n'est là que pour du développement sous Zend Studio, je pourrais rajouter un include à chaque fichier de ma fonction autoload... Qui serait enlevé pour la production.

    ***

    Et encore après, je crois que je suis très bête. Si chaque classe fait un include du fichier faisant les include... Ce n'est pas les include_once de ce dernier qui vont vérifier sir les fichiers sont déjà présent. C'est l'include_once du fichier des include qui ne va inclure ce fichier qu'une fois. A relire à son aise. Mais en résumé: je bosse sur un projet trop gros et j'arrive encore à faillir sur un truc stupide :s

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

Discussions similaires

  1. [PHP 5.4] Gestion des includes de classe
    Par thebarbarius dans le forum Langage
    Réponses: 7
    Dernier message: 14/03/2010, 14h02
  2. Question sur PHP - Gestion des Includes
    Par Angelinsky7 dans le forum Langage
    Réponses: 6
    Dernier message: 03/11/2008, 11h32
  3. Réponses: 3
    Dernier message: 09/07/2007, 07h49
  4. [Référencement] Gestion des "includes" dans Google
    Par odelayen dans le forum Référencement
    Réponses: 5
    Dernier message: 20/04/2005, 17h07
  5. Gestion approfondie des utilisateurs
    Par Lux interior dans le forum XMLRAD
    Réponses: 11
    Dernier message: 04/03/2003, 21h43

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