Debugging Drush scripts con Xdebug y PhpStorm

Enviado por keopx el Mar, 20/06/2017 - 19:32

Para configurar correctamente un entornos para depurar con Xdebug y PhpStorm los comandos Drush es necesario realizar una serie de configuración especifica.

  • Configurar una PHP Web Application para depurar por la línea de comandos.
  • Todo el código ejecutado debe estar disponible en el proyecto, incluyendo drush.
    • Ej. Instalando drush como dependencia de composer (también, recuerde ejecutar drush desde su proyecto).
  • Habilitar depuración xdebug para la línea de comandos.
sudo phpenmod xdebug
  • Un enlace simbólico de xdebug.ini de mi directorio /etc/php/7.0/cli/conf.d como estaba usando en /etc/php/7.0/apache/conf.d para la depuración web.
    • Ejemplo de configuración:

    sudo vi /etc/php/7.0/cli/conf.d/20-xdebug.ini

    Y añadimos:

    zend_extension=xdebug.so
    xdebug.remote_connect_back = 1
    xdebug.default_enable = 1
    xdebug.remote_autostart = 1
    xdebug.remote_enable = 1
    xdebug.remote_port = 9000
    xdebug.remote_handler = dbgp
    xdebug.max_nesting_level = 500
    xdebug.idekey = PHPSTORM
    xdebug.profiler_enable_trigger = 1

    Utilice el botón "Listen for PHP Debug connections" de PhpStorm:

    • Establezca el cliente de depuración remota en la línea de comandos utilizando:
    • Editamos ~/.bashrc y añadimos:
    # PHPstorm drush debug
    export XDEBUG_CONFIG="idekey=PHPSTORM"
    
    • Establezca la configuración del servidor. Asegúrese de que el nombre que utiliza coincide con el nombre del servidor que configuró en PhpStorm:
      • PHP_IDE_CONFIG = PHPSTORM
    • Ejecute drush.

    Si quereis correr Xdebug con Docker y/o Vagrant os recomiendo este post: http://blokspeed.net/blog/2016/02/debugging-drush-scripts-with-xdebug-and-phpstorm-on-vagrant-in-2016/

    La verdad es que no recordaba como se configuraba el Xdebug para PhpStorm y Drush y gracias a Juanen (jansete en Drupal) me he vuelto a ponermelo bien y que menos que contribuirlo :D

    Añadir nuevo comentario

    El contenido de este campo se mantiene privado y no se mostrará públicamente.

    HTML Restringido

    • Etiquetas HTML permitidas: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
    • Saltos automáticos de líneas y de párrafos.
    • Las direcciones de correos electrónicos y páginas web se convierten en enlaces automáticamente.