PsySH は、PHP 用のランタイム開発者コンソール、対話型デバッガー、および REPL です。
PsySH は、PHP 用のランタイム開発者コンソール、対話型デバッガー、および REPL です。ループ (REPL)。
簡単に言うと、firebug のコンソールを使用して JavaScript コードをデバッグするのと同じです。
公式 Web サイトでは 3 つのインストール方法が紹介されています。
私は Composer インストールを選択することを好みます。このプロジェクトには、他の依存プロジェクトの場合にも、Composer はこの問題をうまく解決できます。
次のチュートリアルでは、例として OS X と Windows 10 を取り上げます。php と Composer がインストールされ、システム環境変数として設定されていることを前提としています。
最初に Composer を使用します。 PsySH をダウンロードします。ここではグローバル インストールを使用します:
$ composer global require psy/psysh
インストール後、PsySH は /Users/{username}/.composer/vendor/psy/psysh ディレクトリにインストールされています
この時点では、直接実行できます:
$ /Users/{用户名}/.composer/vendor/psy/psysh/bin/psysh
使いやすくするために、環境変数に追加することをお勧めします:
$ echo 'export PATH="/Users/{用户名}/.composer/vendor/psy/psysh/bin:$PATH"' >> ~/.bashrc$ source ~/.bashrc
同様に、Composer をインストールするには、win キー + R キーを押し、「cmd」と入力して、Windows コンソールを開き、次の手順を実行します。
composer global require psy/psysh
インストールが完了すると、PsySH が C:Users{username にインストールされます。 }AppDataRoamingComposevendorpsypsysh
bin/psysh ファイルは Windows 実行可能ファイルではないため、次のコマンドを使用して PsySH を実行する必要があります
php C:Users{用户名}AppDataRoamingComposervendorpsypsyshbinpsysh
使いやすくするために、という名前の新しいファイルを作成します。 psysh を C:Users{username}AppDataRoamingComposevendorpsyshbin ディレクトリの .bat ファイルに追加します。その内容は次のとおりです。
<a href="http://www.jobbole.com/members/echo">@ECHO</a> OFFphp "%~dp0psysh" %*
この時点で、C:Users{username}AppDataRoamingComposevendorpsyshbin をシステム環境変数 PATH に追加します。将来的には、cmd の下で psysh を直接実行できるようになります。
C:UsersVergil>psyshPsy Shell v0.6.1 (PHP 5.6.8 — cli) by Justin Hileman>>>
前述したように、PsySH は対話型の PHP 実行コンソールです。ここで PHP を作成できます。毎回の戻り値:
そして、コードが終了したかどうかをインテリジェントに認識します
PsySH は、コンソールと同じように 2 つのキーを押すことで、変数名、関数、クラス、メソッド、プロパティ、さらにはファイルを自動的に完成させることができます:
実行時にパラメーターを忘れた場合はどうすればよいですか? PsySH のドキュメント機能を使用すると、ドキュメントを即座に表示できます。
PsySH ドキュメントは ~/.local/share/psysh/ に保存されています。 (Windows システムは C:Users{username}AppDataRoamingPsySH に保存されています)
ドキュメントのダウンロード アドレス:
中国語ドキュメントをダウンロード:
$ cd ~/.local/share $ mkdir psysh$ cd psydh$ wget http://psysh.org/manual/zh/php_manual.sqlite
OK、完了後に PsySH を再度開きます
ページング機能もあります (more コマンドと同じ)
もちろん、カスタム オブジェクトにも関連する機能を含めることができます:
たとえば、test.php ファイルには次の内容があります:
ユーザー レベルのオブジェクトを簡単に表示します。クラス、インターフェイス、トレイト、定数、メソッド、またはプロパティのソース コード:
前の例に従います:
ヘルプを表示するにはshow の場合は、help show コマンドを使用します。
list コマンドは、自分のコードと他の人のコードに関するすべてを認識します。すべての変数、定数、クラス、インターフェイス、機能、関数、メソッド、プロパティを簡単にリストし、検索します。
さらに詳しい使用方法については、help list コマンドを入力して表示できます。
例外をキャッチするのを忘れた場合は、wtf コマンド (wtf ってどういう意味ですか?) を使用して例外情報を表示できます。
Unix 系システムの History コマンドと同様に、PHP コードや PsySH で実行したコマンドを表示できます。詳細を表示するには、ヘルプ履歴コマンドを実行します。
exit コマンドを使用して PsySH を終了します
最適なコマンド、help または ?、すべてを理解するのに役立ちます Command
当初は例として Laravel を使用したかったのですが、デバッグの内容が多すぎることが多く、ページで表示する必要があります。中国語の記事で述べたように、例として ThinkPHP を使用してみましょう:
まず、ThinkPHP をインストールします
次に、Composer を使用して PsySH を部分的にインストールします:
ThinkPHP の dump() 関数と symfony/var-dumper の dump() 関数の間に名前の競合があるため、どちらかの名前を変更する必要があります。個人的にはTPを変更することをお勧めします。なぜ? symfony の方がずっと使いやすいからです。 。 。
次の 3 行のコードをエントリ ファイルindex.php に追加します。
プロジェクトのルート ディレクトリで、PHP のビルドから開始します。 Web サーバー内:
php -S localhost:8080
然后即可在浏览器访问你的应用: http://localhost:8080
你将会看到以下画面,PsySH启动了
其他操作,和CLI操作差不多。例如:
ls -al ThinkModel
show \Think\Model::find
doc \Think\Model::save
当然,那句PsyShell::debug()不一定要放在入口文件,它可以放在你一切想要debug的地方例如,我放在默认的首页控制器:
重新运行php内置server并访问页面,然后输入命令:
ls -al
打开PsySH后,输入get_defined_vars()试试?