私はこれを完全には理解していません。私が見つけたすべてのドキュメントは、xdebugを使用してApacheで実行されているスクリプトをデバッグする方法をカバーしています。 phpCLIスクリプトをデバッグする必要があります。
したがって、たとえば、XDEBUG_SESSION_START変数を渡してxdebugを開始するにはどうすればよいですか?
私は特にCakePHPシェルをデバッグしようとしています。ですから、誰かがそれについて追加の洞察を持っているなら、私は非常に感謝するでしょう。
ありがとう。
Xdebugのマニュアル には、たとえば(引用)のように、いくつかの注意事項があります。
export XDEBUG_CONFIG="idekey=session_name"
php myscript.php
EclipsePDTを使用してPHPスクリプトを開発およびデバッグしている場合、ApacheとCLIの間に大きな違いはありません。構成はまったく同じです。Webを構成する必要はありません。サーバー、またはURLを指定しないでください。代わりに、PHP実行可能ファイルへのパスを指定する必要があります。
関して XDEBUG_SESSION_START
変数:ええと、スクリプト全体を「デバッグモード」で起動するので、「デバッグセッション」の概念はありません。
たとえば、これがWindow > Preference > PHP > PHP executables
は今の私には似ていますが、右側では、最初のボタンのEdit
ボタンをクリックすると何が表示されますか?
(出典: Pascal-martin.fr )
(出典: Pascal-martin.fr )
そしてその debug configurations
窓 :
(出典: Pascal-martin.fr )
そしてデバッグを開始します:それはうまくいきます:
(出典: Pascal-martin.fr )
お役に立てれば :-)
それ以外の場合、どのような特定の問題が発生しますか?
Bash(または同様のシェル)を使用している場合は、次の小さなスクリプトが役立つ場合があります。
alias drush-debug=drd
function drd {
export XDEBUG_CONFIG="idekey=cli_session"
export SERVER_NAME="developer.machine"
export SERVER_PORT="9000"
drush "$@"
unset XDEBUG_CONFIG
unset SERVER_NAME
unset SERVER_PORT
};
または以下のコメンテーターによって提案されたように
alias drd='XDEBUG_CONFIG="idekey=PHPSTORM" drush "$@"'
このように、デバッグするたびにトリガー変数を手動で設定および設定解除する必要はありません。
次のセクションをphp.iniに配置するだけです
[XDebug]
xdebug.max_nesting_level = 200
xdebug.remote_enable=1
xdebug.remote_port=9000
;xdebug.profiler_enable=1
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=1
pHPSTORMをIDEキーに置き換えます