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 :

Où est faite l'inclusion ? / Déboguer du PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut Où est faite l'inclusion ? / Déboguer du PHP
    Bonjour,

    j'ai un fichier qui est inclus plusieurs fois dans mon code et j'aimerais savoir, quand il est appelé, d'où vient l'inclusion.

    Exemple de ce que je voudrais :

    toto.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include 'fichier.php';


    titi.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include 'fichier.php';

    Dans cet exemple le fichier fichier.php est inclus dans toto.php et dans titi.php. Est-il possible, dans fichier.php, de mettre un code qui dit si l'inclusion est faite dans toto ou dans titi ?

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    include n'étant pas paramétrable c'est pas faisable nativement.
    D'ailleurs je me pose la question de l'utilité dans un site en production... Pour le débogage, je veux bien, il est intéressant de voir la pile d'appels avec par exemple la fonction debug_print_backtrace() mais au-delà de cette utilisation si ça reste nécessaire c'est qu'il y a un problème d'architecture.

    Le seule moyen c'est de faire des inclusions distantes paramétrables à base de include 'http://www.site.com/script_a_inclure.php?caller=nom_script_appelant mais pour des raisons de sécurité je te le déconseillerais fortement.

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Tu me le déconseilles mais en phase de mise au point à condition de supprimer tout ça avant mise en production ?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Hello Laurent,

    Je parie que ton vrai problème est un problème d'organisation.

    Qu'est-ce qui t'empêche de définir une constante dans les fichiers appelants, et de vérifier l'existence de cette constante dans le fichier inclus?

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Euh, une constante par fichier pourquoi pas mais alors bonjour l'usine à gaz. T'imagine un fichier inclus de partout la tartine de tests pour savoir qui l'appelle et pourquoi ça plante... C'est une très mauvaise idée.

    Tu dois revoir ton architecture et/ou ton organisation. Il y a bien un autre moyen beaucoup plus simple c'est d'utiliser une débogueur avec points d'arrêt et exécution pas à pas, à chaque arrêt tu auras ainsi la pile d'appels, les valeurs des variables et des paramètres. C'est autrement plus simple à déboguer ainsi que toutes les rustines que l'on pourra te filer.

    Prends le temps d'installer Xdebug et tu devrais t'en sortir bien mieux.

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Super car ça fait 9 ans que je code du PHP et je ne connaissais pas de débogueur...Cela dit, je connais bien le principe car il y a près de 20 ans, je faisais du logiciel embarqué et j'utilisais un émulateur (notamment pour poser des points d'arrêt et analyser la trace précédant le point d'arrêt). C'est sûr qu'une telle fonctionnalité me serait très utile. J'ai donc installé xdebug puis la dll de Notepad++ (j'ai l'habitude avec cet éditeur), qui doit permettre de poser des points d'arrêt. Mais
    Dans Notepad++, allez dans le menu Compléments > DBGp > Debugger, ce qui va afficher l'interface.
    Le menu "Compléments" ne possède pas chez moi de sous-menu "DBGp" (juste HTML tag qui rappelle le nom de la dll, mais rien trouvé d'utile dessous). Et pas moyen de poser un point d'arrêt. Donc comment faire ?

Discussions similaires

  1. [Plugin][RCP]Welcome page...Comment c'est fait pour celle d'Eclipse???
    Par tophebboy dans le forum Eclipse Platform
    Réponses: 12
    Dernier message: 20/07/2006, 18h27
  2. [HTML] C'est quoi la balise espace en php ?
    Par leloup84 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/03/2006, 12h39
  3. Comment est faite la partie "réponse" de phpbb?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/12/2005, 00h26
  4. Quel est l'equivalent de Explode de php ?
    Par reg11 dans le forum Langage
    Réponses: 4
    Dernier message: 29/06/2005, 16h50

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