Domanda

PhpStorm come il mio strumento principale per il debug PHP e sono molto contento. Finora ho usato Firefox per eseguire gli script, e le catture PhpStorm pause perfettamente.

Ora ho una situazione in cui io sono in esecuzione uno script PHP tramite linea di comando (non del browser) e voglio sapere se c'è un modo per impostare PhpStorm alle interruzioni di cattura durante l'esecuzione di uno script PHP tramite linea di comando?

È stato utile?

Soluzione

orologio / voto il relativo problema PhpStorm.

Al di configurazione momento è un po 'complicato. Dovrebbe essere possibile eseguire il debug come descritto nel Zend KB , con un server di falso e Php Remote Debug di configurazione in PhpStorm. Si noti che questo tutorial è un errore, è necessario QUERY_STRING set come questo (su 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"

(si noti la differenza nel citare che è importante).

Set up PhpStorm come mostrato screenshots:

server fake

debug remoto

Premere il tasto Debug sulla barra degli strumenti principale. PhpStorm inizierà ad ascoltare per le connessioni debugger.

Nella riga di comando eseguire lo script:

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

PhpStorm colpirà il punto di interruzione:

breakpoint hit

Questo è stato testato su Windows con l'installazione Zend Server, ma dovrebbe essere simile su altri sistemi e con xdebug.

Se si desidera eseguire il debug direttamente da PhpStorm, uso script php Esegui / Debug tipo di configurazione. Il vostro esempio PHP configurata per questo progetto deve avere Zend Debugger o Xdebug attivata nei file di configurazione.

home PHP e del debugger modalità possono essere specificati in File | Settings | PHP.

Proprio verificata con l'installazione Zend Server (PHP casa: d:\dev\zend\ZendServer\bin). E Zend Debugger, funziona perfettamente per me

Altri suggerimenti

Per attivare PHP debuging con Xdebug sulla linea di comando / shell con PhpStorm è molto semplice:

export XDEBUG_CONFIG="idekey=PHPSTORM"

In windows CLI, l'uso insieme al posto di esportazione.

set XDEBUG_CONFIG="idekey=PHPSTORM"

Assicurarsi PhpStorm sta ascoltando le connessioni PHP Debug.

Per il debug disabilitare dalla fine riga di comando:

unset XDEBUG_CONFIG

Questa (PhpStorm) è il PhpStorm IDE-Key di default.

  1. Fare clic su Esegui.
  2. Fare clic su Modifica configurazioni ...
  3. Fai clic sul verde +
  4. Seleziona script PHP.
  5. Fornire un nome nel campo Nome.
  6. Fornire il percorso completo dello script nel campo File.
  7. Fare clic su OK.
  8. Selezionare lo script appena configurato in questa discesa:

Schermata di PhpStorm barra dei menu

  1. Fare clic sul pulsante di esecuzione o di debug. Lo script dovrebbe funzionare e dovrebbe raccogliere eventuali punti di interruzione impostati.

Se si esegue lo script, si può vedere l'uscita qui:

Schermata di Run widget di, tipicamente ancorata sul fondo della finestra

Se si esegue il debug lo script, si può vedere l'uscita qui:

Schermata di Console widget di, ancorata nel Debug widget di

Verificare che le variabili di ambiente e SERVER_NAME SERVER_PORT sono set. PhpStorm bisogno di loro per fare la mappatura destra. Metterli con l'esportazione in bash o manualmente nel PHPScript. In entrambi i casi PhpStorm può trovare poi sotto $_SERVER['SERVER_NAME'] e $_SERVER['SERVER_PORT'] correttamente.

Per me (su MacOS) ha funzionato in questo modo: export XDEBUG_CONFIG="idekey=12345"

Nessuno di questi suggerimenti sono stati lavorando bene per me.

Se si è nella stessa situazione provare questo comando (controllare il giusto percorso interprete php)

/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]

In MacOS, stavo usando bash_profile diverso. Ho dovuto correre seguente comando prima:

source ~/.bash_profile

Questo ha cambiato la mia php da built-in / usr / bin / php a quello installato tramite XAMPP. XDebug del PhpStorm ha iniziato a lavorare dopo il comando sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top