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 de path


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 33
    Points
    33
    Par défaut gestion de path
    bonjour,

    je suis en train de développer un petit CMS (le terme est exagéré mais je trouve pas de terme plus proche ) pour une entreprise

    en effet je leurs créer une vitrine installable et paramétrable facilement par un panneau d'administration

    bon c'est fini pour le contexte

    mon probleme est le suivant
    je commence a avoir plein de classes dans plein de packages, cela commence a etre dure (et surtout difficile car les classes communique beaucoup entre elle) d'appeler les classes par leur chemin relatif, de plus, travaillant sur dans un sous dossier de mon LAMP je ne peux utiliser un chemin absolue (pas envie de configurer le path)
    bref je cherche un conseil sur la façon de proceder
    personnellement je suis bien tenté par une classe listant le contenu de chaque dossier et l'ajoutant a une liste
    je pourrai par exemple utiliser une methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Path::getURL("Utilisateur");
    avait vous une meilleur idée?
    (je ne configurerai pas le path car si ils veulent installer l'appli dans un sous dossier de l'hebergeur, cela ne marchera pas )

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Pourquoi ne pas définir tous tes liens en relatif par rapport à la racine du répertoire dans lequel tu travailles et de rajouter une constante qui indique l'emplacement de ce répertoire par rapport à la racine du site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
        define('ROOTDIR','/mycms');
    ?>
    A inclure dans tous les fichiers qui en ont besoin bien évidemment !

    Tu peux alors utiliser cette constante à chaque fois que tu en as besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="<?php echo ROOTDIR;?>/images/logo.png"/>

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Utiliser (en définissant) la fonction de chargement automatique de classe, __autoload ?

    Chemin(s) d'inclusion éventuellement défini(s) auparavant en modifiant l'include_path.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    vos 2 solutions me semble convenable
    pour ce qui est de autoload, je ne pense pas que ça réglerai mon problème
    je ne cherche pas a inclure mes classes que si je les instancie, je cherche plutôt a savoir ou elle se trouve

    par exemple ma classe Utilisateur appelle une methode de Rubrique
    Rubrique appelle une methode de Droit.
    Dans se cas, j'inclue droit de Rubrique, or pour appache je l'inclue en partant d'utilisateur.
    suffit qu'il y ai un sous package pour que ça foire.

    donc je pensais tous simplement faire une classe avec une variable 'path' puis ajouter le chemin
    pour ça, je fais un truc barbare, a savoir que je liste l'ensemble des classes php ( .inc.php ) et je prend celle avec le chemin de celle qui correspond

    ta solution ROOTDIR me conviendrai aussi, mais il faudrait placer cette constante partout?
    faudrai donc changer toute les classes pour installer le projet, a moins de le mettre dans une base

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Citation Envoyé par Tony_ducrocq Voir le message
    faudrai donc changer toute les classes pour installer le projet, a moins de le mettre dans une base
    Non, justement, un seul fichier de configuration à modifier.

    Tu as un fichier config_vars_env.php qui contient toutes ces variables à modifier d'un environnement à l'autre pour s'adapter, et tu l'inclus dans tous les fichiers qui en ont besoin. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include('../config/config_vars_env.php');

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par alband85 Voir le message
    Non, justement, un seul fichier de configuration à modifier.

    Tu as un fichier config_vars_env.php qui contient toutes ces variables à modifier d'un environnement à l'autre pour s'adapter, et tu l'inclus dans tous les fichiers qui en ont besoin. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include('../config/config_vars_env.php');
    nickel, je vais faire ça, j'avais pas du tout pensé a faire un fichier rien que pour ça ^^

    j'ai cherché trop loin

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Si la solution te convient et fonctionne, n'oublie pas le bouton

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    c'est bon ça marche niquel
    par contre reste a voir le probleme de l'hebergement
    je serai surement pas a la racine

    enfin, le probleme est reglé

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Ben justement, si tu n'es pas à la racine, ça fonctionne pareil.
    Si le répertoire où tu es hébergé est /sites_de_tony/cms (par rapport à la racine du site), tu renseignes la constante ROOTDIR avec la valeur "/sites_de_tony/cms".

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    oui c'est bon j'ai rien dit

  11. #11
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut

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

Discussions similaires

  1. Gestion de paths vers un DD externe
    Par rambc dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 12/07/2010, 16h50
  2. Gestion du mouseover - Pb relative path
    Par Emilien69 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/02/2010, 21h08
  3. gestion des fichiers app.path
    Par parcouri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/08/2007, 16h31
  4. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11
  5. gestion d'un joystick ...
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h53

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