2011-03-15 7 views
19

Uso PHPStorm como mi herramienta principal para depurar PHP y estoy muy contento. Hasta ahora he estado usando Firefox para ejecutar las secuencias de comandos, y PHPStorm atrapa roturas perfectamente.Depurar el script de línea de comandos de PHP en PHPStorm

Ahora tengo una situación en la que estoy ejecutando un script PHP a través de la línea de comandos (no navegador) y quiero saber si hay una manera de configurar PHPStorm para atrapar interrupciones al ejecutar un script PHP a través de la línea de comandos?

+2

Ver [respuesta de Venkat] (http://stackoverflow.com/a/17429641/1924128) a continuación para la solución simple. La respuesta actualmente aceptada está desactualizada. –

Respuesta

13

Por favor, watch/vote el problema relacionado con PhpStorm.

Por el momento la configuración es un poco complicada. Debería ser posible depurar como described in the Zend KB, con un servidor falso y configuración de Php Remote Debug en PhpStorm. Tenga en cuenta que este tutorial tiene un error, es necesario establecer QUERY_STRING como esto (en Windows):

SET "QUERY_STRING=start_debug=1&debug_port=10137&debug_host=127.0.0.1&debug_stop=1&no_remote=1&debug_session_id=10000" 

(tenga en cuenta la diferencia en la cita que es importante).

Establecer PhpStorm como se muestra en las capturas de pantalla:

fake server

remote debug

Pulse el botón de depuración en la barra de herramientas principal. PhpStorm comenzará a escuchar las conexiones del depurador.

En la línea de comandos ejecutar la secuencia de comandos:

d:\dev\zend\ZendServer\bin\php.exe d:\work\attaches\sample\helps.php 

PhpStorm será el punto de interrupción:

breakpoint hit

Esto fue probado en Windows con la instalación del servidor de Zend, pero debe ser similar en el otros sistemas y con xdebug.

Si desea depurar directamente desde PhpStorm, use Php Script tipo de configuración Ejecutar/Depurar. Su instancia de PHP configurada para este proyecto debe tener Zend Debugger o Xdebug habilitado en los archivos de configuración.

El modo de inicio y depuración de PHP se puede especificar en File | Settings | PHP.

Acaba de verificarse con la instalación del servidor Zend (PHP home: d:\dev\zend\ZendServer\bin) y Zend Debugger, funciona perfectamente para mí.

+0

+1 ¡Muchas gracias! El uso del ** Script Php ** Tipo de configuración Run/Debug es una solución aceptable: lo probé y lo tengo funcionando. Sin embargo, es menos que ideal, ya que tengo que configurar una configuración para cada script en la que quiero ejecutar una herramienta externa de terceros. Sería bueno si pudiera usar el mecanismo de ** herramienta externa ** y tener interrupciones de captura de PHPStorm ... ¡pero creo que tendré que esperar! – JoshuaDavid

+0

He actualizado mi respuesta con la guía de configuración remota pura, no funcionó antes debido a una cita incorrecta en el artículo de Zend KB. – CrazyCoder

+0

¡Gracias! El método 'ficticio' es genial y bastante genérico para mis necesidades en la ejecución de herramientas externas. – JoshuaDavid

2

Compruebe que las variables de entorno SERVER_NAME y SERVER_PORT estén configuradas. PHPStorm los necesita para hacer el mapeo correcto. Configúrelos con exportar en bash o manualmente en phpscript. En ambos casos, PHPStorm puede encontrarlo en $_SERVER['SERVER_NAME'] y $_SERVER['SERVER_PORT'] correctamente.

+0

Este mapeo resuelto para mí, gracias! Aunque solo funcionó cuando exporté las variables en bash, su configuración en el script PHP no funcionó. – Alex

49

Para habilitar PHP con debuging Xdebug en la línea de cáscara/comando con PhpStorm es muy fácil:

export XDEBUG_CONFIG="idekey=PHPSTORM" 

En CLI ventanas, uso que figuran en lugar de exportación.

set XDEBUG_CONFIG="idekey=PHPSTORM" 

Asegúrese de que Phpstorm esté escuchando las conexiones de depuración de PHP.

deshabilitar la depuración de final de línea de comandos:

unset XDEBUG_CONFIG 

Este (PhpStorm) es el valor predeterminado PhpStorm IDE-Key.

+0

gracias, funciona! –

+1

¡esta debería ser la respuesta aceptada!funciona como un amuleto – WonderLand

+0

En Windows CLI use 'set XDEBUG_CONFIG =" idekey = PHPSTORM "' –

5
  1. Haga clic en Ejecutar.
  2. Haga clic en Editar Configuraciones ...
  3. Haga clic en el verde +
  4. Seleccionar Script PHP.
  5. Proporcione un nombre en el campo Nombre.
  6. Proporcione la ruta completa a su secuencia de comandos en el campo Archivo.
  7. Haga clic en Aceptar.
  8. Seleccione el guión que acaba de configurar en este desplegable:

Screenshot of PhpStorm menu bar

  1. Haga clic en el botón de ejecución o depuración. Su script debería ejecutarse y debería capturar cualquier punto de interrupción que se establezca.

Si ejecuta la secuencia de comandos, se puede ver la salida aquí:

Screenshot of Run widget, typically docked on the bottom of the window

Si se depura el guión, se puede ver la salida aquí:

Screenshot of Console widget, docked in the Debug widget

1

Para mí (en MacOS) funcionó de esta manera: export XDEBUG_CONFIG="idekey=12345"

+0

trabajando en Debian también – Northys

Cuestiones relacionadas