私はルビーに少し甘やかされておりpry
、アプリの素晴らしい機能を使用することに慣れています。アプリを 1 つのスレッドにロックしてから、httpd コンソールでこじ開けて、多くの問題の根底にたどり着くことができますが、PHP で利用できるようなものは見つかりません。実行中にデータ構造などをデバッグおよびトレースするために、PHP でこのように機能する類似または承認されたソリューションはありますか?
6 に答える
私はあなたが何を意味するかを正確に知っています。私もPHPに移行した後、Pryが恋しくなりました。これまでのところ、 PsySHは Pry に最もよく似た PHP 用の最高の REPL のように見えます。リフレクションがあるため、変数、定数、クラスなどを評価するコマンドを使用できます。関数やオブジェクト プロパティに関するドキュメントを読むことができるls
Pry と同様のヘルプ コマンドがあります。show-doc
Pry のshow-source
コマンドと同じように、任意のオブジェクトのソースを表示することもできます。デバッグも:
「PsySH は、JavaScript の debugger ステートメントと同じように、インタラクティブなデバッガーとして使用でき、var_dump() と die() の無限の繰り返しからあなたを救います。ブレークポイントを設定したい場所に次の行をドロップするだけです:
\Psy\Shell::debug(get_defined_vars());"
Borisも、Pry に似た PHP 用の優れた REPL です。
私もこじ開けのようなものを見ていますが、これは似たようなことを達成するのに役立ちました: http://proger.i-forge.net/Triggering_XDebug_session_from_command_line/ODd
PHP は Ruby とは動作が異なります。質問しているコンテキスト内で比較するのはちょっと難しいです。
ランタイム内の複雑な構造の検査は、デバッグを介して PHP で行われます。つまり、クライアントのデバッグ側 (= PHP IDE) は、PHP を実行しているサーバーのデバッグ側と通信できる必要があります (これは、通常、URL DBGSESSID などを介して、特別な名前で Cookie を開始することによって行われます)。 =123&dbgParam1=123)。
そのため、Web サーバー上の PHP には特別なデバッグ モジュール (XDebug など) がインストールされている必要があり、debugging-client が「今すぐ停止」と言うと、Web サーバーは特定のブレークポイントで実行を一時停止し、ローカル、グローバル、静的などのデータ構造を公開します。
興味がある場合は、デバッグをサポートする利用可能な PHP IDE を調べてください: What is the best IDE for PHP?
私はRubyとpryにはあまり興味がありませんが、トピックを読んだ限りでは、pryはデバッグツールです。PHP のデバッグには、xDebug が組み込まれた wamp というローカル Web サーバーを使用します。IDE と組み合わせると、Netbeans または Eclipse で、php スクリプトの実行中にデータ構造/オブジェクトを調べることができます。