Depurador de PHP para Vim: depurar secuencias de comandos

Mi depurador vim requiere que establezca una cookie Xdebug en mi navegador, agregando ?XDEBUG_SESSION_START=1 , después de lo cual puedo comenzar a depurar.

Pero no puedo configurar esta cookie / sesión cuando llamo a un script en la CLI.

¿Cómo depura una línea de comandos php-scripts con vim?

No he encontrado todas las piezas para este rompecabezas en un lugar conveniente, así que aquí está mi solución ligeramente más completa. Esto funciona para mí con vim 7.3, xdebug 2.0.

  1. Obtenga el plugin de depim vim

    • El archivo debugger.py entra en .vim / plugins, cuyo patógeno no funciona automáticamente.
    • Use F5 para comenzar a escuchar las conexiones xdebug entrantes (en el puerto 9000 de forma predeterminada)
  2. Use la configuración correcta relacionada con xdebug en php.ini (use un php.ini alternativo, quizás) .:

 [Zend] zend_extension = /full/path/to/xdebug.so xdebug.remote_enable = 1 xdebug.remote_port =9000 xdebug.remote_host = localhost ; We have to turn on remote_autostart when running php from ; cli. That's probably a good reason to keep the cli and apache ; versions of php.ini distinct. xdebug.remote_autostart=1 ; idekey can be just about anything, but the value in php.ini needs ; to match the value used in the environment that launches php. xdebug.idekey=vim_session 
  1. Al ejecutar el script php desde la línea de comando, preestablezca el entorno idekey var en el formulario

export XDEBUG_IDEKEY = “idekey = vim_session”

  1. Presiona F5 en vim para comenzar a escuchar en el puerto_remoto

  2. En el shell con el valor XDEBUG_IDEKEY, inicie php con “php {scriptname}”

Entonces php carga php.ini, encuentra la extensión xdebug.so, que se inicializa con esas configuraciones php.ini. La extensión xdebug intercepta la ejecución del script e intenta conectarse a localhost: 9000, que es donde está escuchando la extensión vim + python. Una vez que se establece una conexión, la extensión xdebug coordina la sesión de depuración, y el complemento vim presenta una serie de ventanas de depuración tipo ide. Voila!

Enlace de bonificación: también uso este shell scrip t para ejecutar php. Espera hasta que ve a vim abrir el puerto de depuración, y luego inicia la sesión de php. Al finalizar, imprime el código de resultado y regresa para otra ejecución (a menos que presione ctrl + c, por supuesto).

Creo que encontrará su respuesta en los documentos (busque Starting The Debugger ).