Maison >développement back-end >tutoriel php >Débogage avec xdebug et sublime texte 3

Débogage avec xdebug et sublime texte 3

Joseph Gordon-Levitt
Joseph Gordon-Levittoriginal
2025-02-22 09:21:17854parcourir

Débogage avec xdebug et sublime texte 3

Débogage - Nous le faisons tous beaucoup. Écrire parfaitement le code la première fois est difficile et seuls quelques (voire aucun) réussissent. Il y a plus d'un an, Shameer a écrit un article sur SitePoint sur la façon dont vous pouvez déboguer votre application à l'aide de XDebug et NetBeans. Dans cet article, nous allons voir comment nous pouvons déboguer en utilisant xdebug en combinaison avec le texte sublime.

Les plats clés

  • Pour déboguer avec XDebug et SUBLIME Text 3, l'extension PHP XDEBUG doit être installée et le texte sublime 3 doit être configuré avec le package xdebug installé via le contrôle du package.
  • xdebug doit être configuré dans le fichier php.ini ou dans un fichier xdebug.ini avec des paramètres spécifiques, puis le serveur Web doit être redémarré.
  • Pour le texte sublime 3, le projet doit être configuré et l'URL de l'application Web doit être ajoutée aux paramètres du fichier du projet. Cela permet de déboguer sur plusieurs projets sans avoir à modifier la configuration xdebug à chaque fois.
  • La session XDEBUG peut être démarrée et les points d'arrêt peuvent être définis lorsque l'application s'arrête. À partir de là, les variables peuvent être inspectées et l'application peut être exécutée jusqu'au prochain point d'arrêt ou jusqu'à la fin à l'aide de diverses commandes telles que «Exécuter», «Entrez», «Passez-vous» et «sort».

Pour commencer

Tout d'abord, nous devons installer l'extension PHP XDEBUG. Si vous ne savez pas comment faire cela, veuillez consulter le lien fourni dans l'introduction. Assurez-vous que XDebug fonctionne en vérifiant s'il est répertorié dans votre phpinfo ().
Bien sûr, nous avons également besoin de texte sublime. J'utiliserai la dernière version: sublime texte 3. Cela devrait également fonctionner avec le texte sublime 2.

Configuration de xdebug

Nous devons configurer XDebug en ajoutant ce qui suit à votre fichier php.ini, ou même mieux, à un fichier xdebug.ini comme décrit ici sous la manière de faire sur Linux.

<span>xdebug.remote_enable=1
</span><span>xdebug.remote_handler=dbgp
</span><span>xdebug.remote_host=127.0.0.1
</span><span>xdebug.remote_port=9000
</span><span>xdebug.remote_log="/var/log/xdebug/xdebug.log"</span>

En général, vous utiliserez 127.0.0.1 en tant qu'hôte. Cependant, si vous utilisez Vagrant par exemple, vous utiliserez quelque chose comme 10.0.2.2, selon l'endroit où XDebug peut trouver votre système.

Le journal distant n'est pas nécessaire, mais en cas de problèmes, c'est l'endroit où vous pouvez trouver des informations sur les erreurs qui se sont produites.

N'oubliez pas de redémarrer votre serveur Web!

Configuration du texte sublime 3

L'une des forces du sublime est le fait que vous pouvez l'étendre facilement avec des packages. Dans ce cas, nous allons installer le package xdebug. Si vous ne l'avez pas déjà fait, assurez-vous que vous pouvez installer des packages en installant le contrôle des packages.

Une fois que le contrôle du package est installé, vous devez démarrer le texte sublime 3. Ouvrez la palette de commande dans le menu des outils et recherchez «Installer le package».
Débogage avec xdebug et sublime texte 3

Maintenant, vous pouvez rechercher n'importe quel package que vous aimez. Dans notre cas, nous allons rechercher le package «Client XDebug».
Débogage avec xdebug et sublime texte 3

Le dernier bit que nous devons faire est de configurer le projet dans Sublime. La façon la plus simple de le faire est d'ouvrir le répertoire racine de votre application, d'aller dans des projets et de cliquer sur «Enregistrer les projets sous». Je vous suggère d'enregistrer le fichier dans la racine de votre application, afin que vous puissiez l'enregistrer dans votre système de contrôle de version si vous en utilisez et vous pouvez le configurer facilement à tout moment.

Ouvrez le fichier de projet juste créé. Le contenu ressemblera à ceci:

<span>xdebug.remote_enable=1
</span><span>xdebug.remote_handler=dbgp
</span><span>xdebug.remote_host=127.0.0.1
</span><span>xdebug.remote_port=9000
</span><span>xdebug.remote_log="/var/log/xdebug/xdebug.log"</span>

Nous allons ajouter quelques lignes supplémentaires:

<span>{
</span><span>    "folders":
</span><span>    [
</span><span>        {
</span><span>           "follow_symlinks": true,
</span><span>           "path": "."
</span><span>        }
</span><span>    ]
</span><span>}</span>

Comme vous pouvez le voir, je n'ai ajouté qu'une URL à mon application Web réelle. Je pourrais définir plus de paramètres pour xdebug, cependant, cela suffit pour commencer. J'aurais également pu définir cette URL dans les paramètres XDebug lui-même, mais dans ce cas, je ne pouvais pas travailler sur plusieurs projets sans avoir à modifier la configuration XDebug à chaque fois.

Démarrez la session XDebug

Nous pouvons maintenant démarrer la session XDebug pour voir si tout est configuré correctement. Dans le menu, cliquez sur les outils -> xdebug et cliquez sur Démarrer le débogage (lancement du navigateur). Vous remarquerez que votre site Web est ouvert et que? Xdebug_session_start = sublime.xdebug est ajouté à la fin de l'URL. Cela commencera la session XDebug. En sublime, certains panneaux supplémentaires apparaissent où les informations de débogage seront affichées, après avoir établi un ou plusieurs points d'arrêt.

points d'arrêt

Délivons le premier point d'arrêt. Un point d'arrêt est essentiellement un drapeau où votre application s'arrêtera lorsqu'elle l'atteindra. Pour le moment, il s'arrête, vous pouvez inspecter toutes les valeurs des variables afin que vous sachiez en fait ce qui se passe.

Nous pouvons ajouter un point d'arrêt en cliquant avec notre souris droite sur une ligne, en allant à Xdebug, puis en cliquant sur Ajouter / supprimer le point d'arrêt. Un marqueur sera ajouté à la gouttière de ligne pour indiquer qu'un point d'arrêt a été défini.

Débogage avec xdebug et sublime texte 3

Nous ouvrons à nouveau notre navigateur et continuons avec la session que nous venons de commencer. Vous remarquerez que dès que vous allez sur la page où se trouve le point d'arrêt, la page cessera de charger. Si vous ouvrez maintenant Sublime, vous verrez beaucoup d'informations affichées dans les panneaux XDebug.

La pile Xdebug et le contexte XDebug sont très intéressants. Dans la pile, vous pouvez voir l'ensemble de StackTrace que votre appel est passé.

Dans le contexte, vous verrez toutes les variables globales, mais aussi les variables que vous avez définies vous-même. Vous pouvez cliquer sur ces variables pour voir exactement ces variables. Par exemple, dans la capture d'écran ci-dessous, j'ai cliqué sur la variable $ _server.

Débogage avec xdebug et sublime texte 3

Notez qu'une flèche jaune pointe vers la ligne sur laquelle l'application est actuellement interrompue.

Ainsi, notre application s'est arrêtée et maintenant nous pouvons parcourir les variables définies. Cependant, nous avons terminé et nous voulons continuer. Quoi maintenant? Lorsque vous êtes à nouveau, cliquez sur la souris, cliquez à nouveau et survolez le menu XDebug, vous aurez plusieurs options:

  • Exécuter qui exécutera l'application jusqu'au prochain point d'arrêt ou jusqu'à la fin.
  • Exécutez la ligne qui s'exécutera jusqu'à la ligne que vous avez cliqué.
  • Entrez dans la fonction actuelle et s'arrête juste après.
  • Le pas dépassera la fonction actuelle et s'arrête juste après.
  • sort sortira de la fonction actuelle et s'arrêtera juste après.
  • L'arrêt cessera de déboguer.
  • Detach cessera également de déboguer.

Run and Stop est assez facile à comprendre. Les méthodes d'étape pourraient être un peu déroutantes. Plongeons-nous avec un exemple simple.

<span>xdebug.remote_enable=1
</span><span>xdebug.remote_handler=dbgp
</span><span>xdebug.remote_host=127.0.0.1
</span><span>xdebug.remote_port=9000
</span><span>xdebug.remote_log="/var/log/xdebug/xdebug.log"</span>

Imaginez que vous avez ajouté un point d'arrêt à la première ligne de la barre de méthode. Donc, sur la ligne avec le commentaire de point d'arrêt (// point d'arrêt).

En passant, le débogueur entrera dans la méthode FOOBAR et s'arrêtera là à la première ligne. Ainsi, dans ce cas, le débogueur s'arrêtera sur le retour array_values ​​($ arr); ligne.

Le pas appellera la méthode, mais ne s'arrêtera pas. Il s'arrêtera à la ligne suivante disponible après avoir appelé la méthode. Donc, dans ce cas, il s'arrêtera au retour $ arr;

Enfin, avec pas, il passera à travers toute la méthode de la barre et reviendra à l'appelant. Dans ce cas, il sortira de l'objet, de retour à l'appelant d'origine.

Si vous décidez simplement d'exécuter, l'application s'exécutera davantage jusqu'au moment où il est fait de l'exécution ou un autre point d'arrêt se produit.

Conclusion

Dans cet article, nous avons vu comment nous pouvions intégrer XDebug à Sublime et nous assurer que nous comprenions comment déboguer. Presque tous les IDE adaptés à PHP peuvent s'intégrer à XDebug. Si vous êtes intéressé à déboguer comme celui-ci dans Netbeans, consultez l'article mentionné dans l'introduction. Utilisez-vous des points d'arrêt? Ou utilisez-vous des fonctions PHP comme var_dump pour obtenir vos données de débogage? Faites-nous savoir dans les commentaires ci-dessous!

Questions fréquemment posées (FAQ) sur le débogage avec XDebug et SUBLIME Texte 3

Comment installer xdebug pour le texte sublime 3?

Pour installer xdebug pour le texte sublime 3, vous devez d'abord installer l'extension PHP xdebug. Cela peut être fait en téléchargeant le fichier DLL approprié à partir du site Web XDebug et en l'ajoutant à votre répertoire d'extensions PHP. Après cela, vous devez modifier votre fichier php.ini pour inclure l'extension xdebug. Une fois l'extension XDebug PHP installée, vous pouvez installer le package xdebug pour le texte sublime 3 en utilisant le contrôle du package.

Comment configurer XDebug pour le texte sublime 3?

Configuration de XDebug pour le texte sublime 3 implique la modification de votre fichier php.ini et de vos paramètres Sublime Text 3. Dans votre fichier php.ini, vous devez définir les paramètres xdebug.remote_enable et xdebug.remote_autostart vers 1. Dans votre paramètres Sublime Text 3, vous devez spécifier le chemin d'accès à l'exécutable PHP et le numéro de port que Xdebug devrait utiliser pour la communication .

Pourquoi Xdebug ne fonctionne-t-il pas dans le texte sublime 3?

Si Xdebug ne fonctionne pas dans le texte sublime 3, il pourrait y avoir plusieurs raisons. Un problème courant est que l'extension XDebug PHP n'est pas installée ou configurée correctement. Un autre problème pourrait être que le package XDebug pour Sublime Text 3 n'est pas installé ou configuré correctement. Il est également possible qu'il y ait un problème avec vos paramètres PHP ou SUblime Text 3.

Comment utiliser XDebug pour déboguer le code PHP dans SUblime Text 3?

pour utiliser XDebug pour déboguer le code PHP dans Texte sublime 3, vous devez d'abord définir un point d'arrêt dans votre code. Cela peut être fait en cliquant dans le gouttière à côté de la ligne de code où vous voulez le point d'arrêt. Une fois le point d'arrêt défini, vous pouvez démarrer la session de débogage en sélectionnant «Déboguer le débogage» dans le menu XDebug.

Puis-je utiliser XDebug avec un texte sublime 3 sur un Mac?

Oui, vous, vous Peut utiliser xdebug avec un texte sublime 3 sur un Mac. Le processus d'installation et de configuration de XDebug sur un Mac est similaire au processus pour Windows, mais il existe des différences. Par exemple, l'emplacement du fichier php.ini et le répertoire d'extensions PHP peuvent être différents.

Comment afficher les valeurs de variable avec xdebug dans le texte sublime 3?

pour afficher les valeurs variables avec XDebug Dans Sublime Text 3, vous devez utiliser la fonction «Watch». Cela vous permet de spécifier des variables que vous souhaitez surveiller pendant la session de débogage. Lorsqu'une variable regardée change, sa nouvelle valeur s'affiche dans le panneau XDebug.

Puis-je passer à travers le code avec xdebug dans le texte sublime 3?

Oui, vous pouvez parcourir le code avec xdebug dans Texte sublime 3. Ces commandes vous permettent de contrôler l'exécution de votre code ligne par ligne, ce qui facilite l'identification et la correction des bogues.

Comment arrêter une session de débogage dans le texte sublime 3?

pour arrêter Une session de débogage dans Sublime Text 3, vous pouvez utiliser la commande «Stop Debugging» dans le menu Xdebug. Cela mettra fin à la session de débogage et au contrôle du texte sublime 3.

Puis-je déboguer les applications PHP distantes avec XDebug et SUBLIME Text 3?

Oui, vous pouvez déboguer les applications PHP distantes avec xdebug et Texte sublime 3. Cela nécessite une configuration supplémentaire, y compris la définition des paramètres xdebug.remote_host et xdebug.remote_port dans votre Fichier php.ini.

comment puis-je mettre à jour xdebug dans sublime text 3?

Mis à jour en téléchargeant le dernier fichier DLL à partir du site Web XDebug et en remplaçant le fichier DLL existant dans votre répertoire d'extensions PHP. Le package xdebug pour le texte sublime 3 peut être mis à jour à l'aide du contrôle du package.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn