vim et xdebug principes de base pour y arriver
Le principe est de comprendre comment fonctionne xdebug sinon vous n’arriverez jamais à faire du pas à pas en Php.
L’idée plutôt bizarre mais fonctionne très bien, et ça semble le moyen le plus efficace pour y arriver.
Voici comment fonctionne une session de déboguage et après vous pourrez en déduire ce qu’il faut pour avancer :
- Le client Web = Chrome demande une page en précisant qu’il veut faire du débogague pas à pas (ajouter dans l’URL
XDEBUG_SESSION_START=1
(c’est la valeur xdebug par défaut)) - Lorsque cela arrive sur le serveur Apache, ce dernier fait passer la demande à toutes les librairies liées à Apache, comme d’habitude. Ici, parmi celles qui l’ont demandé, il y a
xdebug
- Là, xdebug voit
XDEBUG_SESSION_START=1
. Il va alors essayer de se connecter au serveur de déboguage qu’on a configuré via ces directives dansphp.ini
:
zend_extension=/chemincomplet/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
- Oui j’insiste bien : Apache devient un client, et se connecte à un serveur de déboguage
- C’est pourquoi dans
vim
, même si, comme moi, vous arrivez à installer correctement l’extension pour faire du pas à pas Vdebug, tant que vous n’aurez pas compris ce que j’explique juste avant, vous n’arriverez pas à faire du pas à pas - Donc dernière étape : je vous explique l’ordre correct de lancement des applications pour réussir à déboguer :
- Préparer l’URL concernée dans le navigateur avec le paramètre
XDEBUG_SESSION_START=1
- Lancer vim avec l’extension Vdebug
- Appuyez sur <F5> dans vim afin qu’il se mette en mode serveur et qu’il attende une connexion. Là un message vous affiche qu’il attend 20s.
- Allez dans le navigateur et validez l’URL (entrée ou ‘Refresh’)
- Regardez vim: automatiquement il passe en mode pas à pas ! C’est magique, génial, efficace et la crème de la crème : vous pouvez déboguer directement sur un serveur distant quand vous connaissez vim. Le top.
- Préparer l’URL concernée dans le navigateur avec le paramètre
Une fois en mode débogage, voici les raccourcis possibles :
<F5>
: start/run (jusqu’au prochain breakpoint/ou fin du script)
<F2>
: pas par dessus
<F3>
: pas entrant dans la fonction
<F4>
: sauter à la fin de la fonction
<F6>
: stopper le déboguage
<F7>
: detacher le script du débogueur
<F9>
: continuer jusqu’au curseur
<F10>
: mettre un breakpoint
<F11>
: voir les variables du contexte (p.ex. après « eval »)
<F12>
: évaluer une variable sous le curseur
:Breakpoint <type> <args>
: mettre un breakpoint de n’importe quel type (voir :help VdebugBreakpoints
)
:VdebugEval <code>
: évaluer du code et afficher le résultat
<Leader>e
: évaluer l’expression sous le curseur et afficher le résultat
Pour arrêter le déboguage, appuyez sur <F6>
. Appuyez encore une fois pour fermer l’interface de déboguage.
If you can’t get a connection, then chances are you need to spend a bit of time setting up your environment. Type :help Vdebug for more information.
Voici une capture de vim / débogage de mon blog WordPress. En plus, en faisant du pas à pas dans WordPress, j’ai appris énormément de choses… Maintenant, à vous de jouer !