Introduction
Je vais montrer aujourd’hui comment interfacer Vim et xdebug pour debugger du php.
- Installer xdebug
- Paramétrer xdebug
- Présentation de deux plugins Vdebug et DBGPavim
- Comment installer les deux plugin avec
Installer xdebug
Je connais deux méthodes
Utiliser PECL
1
|
|
il faut alors ajouter dans votre php.ini
la ligne suivante
1
|
|
Ou plus propre rajouter dans un nouveau fichier /etc/php5/apache2/conf.d/xdebug.ini
et pareil pour la ligne de commande /etc/php5/cli/conf.d/xdebug.ini
utiliser apt-get sous Ubuntu
1
|
|
sur mon Ubuntu, les fichier conf.d était déjà crée
Paramétrer xdebug pour le debugger
Il faut rajouter les lignes suivantes le xdebug.ini
1 2 3 4 |
|
Puis aller sur l’url en ajoutant
1
|
|
Il y a des plugins Firefox et Chrome qui s’occupe de cela.
Pour que le debugger soit lancer par défaut. Vous pouvez rajouter la ligne suivante
1
|
|
Pour tester en ligne de commande.
1
|
|
un simple script bash fait l’affaire. php-debug
1 2 |
|
Les plugins VIM
Je vais pas trop insister sur comment installer un plugin sous Vim. Ce n’est pas très compliqué. Il faut passer par un gestionnaire de plugin (la gestion des plugins par défaut dans Vim n’est pas pratique)
Vdebug
Utilisation
- appuyer sur
<F5>
- vous avez 20 seconde pour lancer le script ou aller sur le serveur apache.
- Une fois le signal capturé
Liste des raccourcis claviers
<F5>
: start/run (to next breakpoint/end of script)<F2>
: step over<F3>
: step into<F4>
: step out<F6>
: stop debugging<F7>
: detach script from debugger<F9>
: run to cursor<F10>
: toggle line breakpoint<F11>
: show context variables (e.g. after “eval”)<F12>
: evaluate variable under cursor:VdebugEval <code>
: evaluate some code and display the result<Leader>e
: evaluate the expression under visual highlight and display the result
La touche <Leader>
est par défault \
sur un clavier anglais. <Leader>e
correspond à \e
. Pas simple à taper sur un clavier azerty. la touche <Leader>
est réglable grâce à cette configuration du .vimrc
1
|
|
Sur mon poste, je tape ,e
Un avis
Marche plutôt bien, mais par défaut Le debugger commence au début du script et pas au premier breakpoint.
Il faut rajouter cette ligne dans votre .vimrc
.
1
|
|
L’histoire des 20 secondes pour se connecter est un peu frustrante.
Par contre le code python est super propre.
DBGPavim
Ce plugin résout les deux problèmes de Vdebug (aucune limitation de temps, démarre au premier point d’arrêt). Je le trouve moins intuitif. Mais il est visiblement plus puissant, il gère plusieurs sessions.
Sur les screenshots la différence est plutôt minime.
Les touches sont un peu près les mêmes.
Installations sous vim
Suivant le plugin que vous avez choisi
Par Pathogen:
1 2 3 |
|
Ou avec les submodules de Git
1 2 3 |
|
Ajouter cette ligne à votre .vimrc
par Vundle
1 2 3 |
|
par NeoBundle :
1 2 3 |
|
En conclusion
Le debugger c’est chouette et cela rends un peu obsolète ce bon vieux var_dump(); die();
D’ailleurs sur le var_dump
. Il est plus simple de taper cette commande directement.
1
|
|
Enfin sur les versions récentes de Symfony la commande dump()
est pratique.
Je vais reparler de xdebug. J’ai plein d’astuce à partager.