web-dev-qa-db-fra.com

Xdebug peut-il être déclenché par des commandes Drush?

Je rencontre un problème avec mes modules de fonctionnalités et mon profil d'installation lors de l'installation du site avec drush si. Il y a un certain nombre de problèmes probablement liés dans la file d'attente des problèmes de fonctionnalités, mais aucun avec de bonnes solutions. La partie intéressante (mentionnée dans certains problèmes) est qu'elle fonctionne correctement lors de l'installation du site via le navigateur, mais échoue lors de l'installation avec drush si.

J'ai une idée de ce qui ne va pas, mais je dois le confirmer. La seule façon dont je peux penser à le confirmer est de parcourir le code avec un débogueur (Xdebug est ce que j'ai configuré). Alors, est-il possible de déclencher Xdebug à partir d'une commande exécutée avec Drush? Plus précisément, puis-je obtenir le démarrage de Xdebug lorsque j'exécute drush si?

8
Chaulky

vous devez vous rappeler qu'avec drush vous êtes (supposément) dans cli, donc cela devrait aider:

https://stackoverflow.com/questions/1947395/how-can-i-debug-a-php-cli-script-with-xdebug

essayez également d'exécuter la commande avec l'option -d (--debug) - elle devrait vous donner beaucoup d'informations sur ce qui ne va pas.

3
mojzis

J'utilise XDebug sur des demandes drush tout le temps.

  1. Assurez-vous que XDebug est chargé dans votre php CLI en exécutant php -i
  2. Assurez-vous que votre client écoute les connexions XDebug et le fait sur le bon port. J'ai réussi à déboguer en utilisant PHPStorm, Netbeans et Komodo IDE en tant que clients.
2
moshe weitzman

Vous pouvez utiliser xdebug_start_trace() et xdebug_stop_trace() fonctions XDebug pour lancer le débogueur à la demande. Assurez-vous que vous avez d'abord configuré XDebug dans CLI (php -i | grep xdebug).

Ensuite, créez un nouveau one-liner PHP comme suit (par exemple drush_xdebug_start.inc):

<?php xdebug_start_trace();

Ensuite, exécutez le drush comme:

drush --early="$PWD"/drush_xdebug_start.inc whatever_command_you_need
2
kenorb

En supposant que vous avez correctement configuré Xdebug, il est très facile d'intégrer votre IDE pour parcourir le code. Définissez simplement la variable d'environnement XDEBUG_CONFIG sur "idekey = MYIDEKEY".

Rendez-le plus facile en lui créant un alias. voici ce que j'utilise dans mon fichier .alias (tcsh):

alias xdebugon 'setenv XDEBUG_CONFIG "idekey=MYIDEKEY"'
alias xdebugoff 'unsetenv XDEBUG_CONFIG'
1
Harry Slaughter