Pregunta

yo suelo Tormenta php Como mi herramienta principal para depurar PHP y estoy muy contento. Hasta ahora he estado usando Firefox para ejecutar los scripts, y PhpStorm atrapa los descansos perfectamente.

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 capturar descansos al ejecutar un script PHP a través de la línea de comandos.

¿Fue útil?

Solución

Por favor Mirar/votar El problema de PhPStorm relacionado.

Por el momento, la configuración es un poco complicada. Debería ser posible depurar como descrito en el zend kb, con un servidor falso y PHP Remote Depurgar Configuración en phpstorm. Tenga en cuenta que este tutorial tiene un error, debe establecer Query_string de esta manera (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 al citar lo que es importante).

Configure phpstorm como se muestra en las capturas de pantalla:

fake server

remote debug

presione el Depurar Botón en la barra de herramientas principal. PhpStorm comenzará a escuchar las conexiones del depurador.

En la línea de comando ejecuta tu script:

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

PhpStorm llegará al punto de interrupción:

breakpoint hit

Esto se probó en Windows con la instalación del servidor Zend, pero debería ser similar en los otros sistemas y con xdebug.

Si desea depurar directamente de PhpStorm, use Script php Ejecutar/depurar el tipo de configuración. Su instancia de PHP configurada para este proyecto debe tener Depurador zend o Xdebug habilitado en los archivos de configuración.

El modo PHP Home y el depurador se puede especificar en File | Settings | PHP.

Acabo de verificar con la instalación del servidor Zend (PHP Home: d:\dev\zend\ZendServer\bin) y el depurador Zend, funciona perfectamente para mí.

Otros consejos

Para habilitar la depuración de PHP con xdebug en la línea de shell/comando con phpstorm es muy fácil:

export XDEBUG_CONFIG="idekey=PHPSTORM"

En Windows CLI, use SET en lugar de exportar.

set XDEBUG_CONFIG="idekey=PHPSTORM"

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

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

unset XDEBUG_CONFIG

Esto (phpStorm) es el PhPStorm IDE-Key predeterminado.

  1. Haga clic en Ejecutar.
  2. Haga clic en Editar configuraciones ...
  3. Haga clic en el verde +
  4. Seleccione el script PHP.
  5. Proporcione un nombre en el campo Nombre.
  6. Proporcione la ruta completa a su script en el campo de archivo.
  7. Haga clic en Aceptar.
  8. Seleccione el script que acaba de configurar en este menú desplegable:

Screenshot of PhpStorm menu bar

  1. Haga clic en el botón Ejecutar o Depurar. Su script debe ejecutarse y debe atrapar cualquier punto de interrupción establecido.

Si ejecuta el script, puede ver la salida aquí:

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

Si depuras el script, puedes ver la salida aquí:

Screenshot of Console widget, docked in the Debug widget

Verifique que las variables de los entornos SERVER_NAME y SERVER_PORT se establecen. PhpStorm necesita que realicen el mapeo correcto. Establecerlos con exportación en la fiesta o manualmente en el PhPScript. En ambos casos, PhpStorm puede encontrarlo entonces bajo $_SERVER['SERVER_NAME'] y $_SERVER['SERVER_PORT'] correctamente.

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

Ninguna de estas sugerencias funcionó bien para mí.

Si está en la misma situación, pruebe este comando (verifique la ruta de intérprete PHP correcta)

/usr/bin/php -dzend_extension=xdebug.so -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=1 [PHP_SCRIPT]

En MacOS, estaba usando diferentes bash_profile. Tuve que ejecutar el siguiente comando primero:

source ~/.bash_profile

Esto cambió mi PHP de incorporado/usr/bin/php a uno instalado a través de XAMPP. El XDebug de PhpStorm comenzó a funcionar después del comando anterior.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top