PHP Psy是一個強大的交互式PHP shell,可以讓開發人員快速測試和調試代碼。它使用Readline庫(如果可用)來提供歷史記錄、補全和命令歷史記錄。而且基于Symfony的Console組件構建,支持各種命令和集成。
例如,你可以通過PsyShell來演示一個最簡單的PHP數組:
$ php-psy
Psy Shell v0.10.4 (PHP 7.4.9 — cli) by Justin Hileman
>>> $arr = [1,2,3,4];
=> [
1,
2,
3,
4,
]
不僅如此,PsyShell還有很多更復雜的功能。例如,你可以使用“ls”命令列出對象或類的屬性和方法,就像在Linux終端上一樣:
$ php-psy
Psy Shell v0.10.4 (PHP 7.4.9 — cli) by Justin Hileman
>>> $obj = new DateTime();
=> DateTime @1600628715 {#3191
date: 2020-09-21 03:31:55.000000 Asia/Shanghai (+08:00),
}
>>> ls $obj
Constants:
Methods: dateTime, format, getOffset, getTimestamp, getTimezone, __construct, __wakeup
Properties: date, timezone_type, timezone
除了這些基本的命令,PsyShell還可以讓你更方便快捷地進行調試和性能分析。例如,你可以使用“xdebug_start_trace()”函數在代碼的某個點開始跟蹤:
$ php-psy
Psy Shell v0.10.4 (PHP 7.4.9 — cli) by Justin Hileman
>>> xdebug_start_trace();
True
>>> // some code that needs to be profiled
>>> $trace = xdebug_stop_trace();
>>> echo $trace;
使用PHP Psy,還可以更加深入地了解你的代碼和性能瓶頸。例如,你可以使用xdebug的xdebug_dump_aggr_profiling_data函數,分析哪些函數或方法最耗費時間:
$ php-psy
Psy Shell v0.10.4 (PHP 7.4.9 — cli) by Justin Hileman
>>> xdebug_enable();
>>> // some code that needs to be profiled
>>> $data = xdebug_get_profiler_aggr_data();
>>> xdebug_dump_aggr_profiling_data($data);
總之,PHP Psy是一個非常強大的工具,可以幫助你更快更方便地調試、測試和分析你的PHP代碼。它支持基本的命令、對象/類的操作和xdebug的性能分析等高級特性,是一個不可錯過的PHP開發者工具。