PHP命令行交互式调试

  • 已yii2为例
  • 修改项目目录下yii文件如下
// 将原代码
$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);

// 加上是否为交互式的判断

$application = new yii\console\Application($config);
// php -a运行时,第一个参数是 '-',部分Mac系统php版本会出现:'Standard input code'
if($argv[0] !== '-' && $argv[0] !== 'Standard input code'){
    $exitCode = $application->run();
    exit($exitCode);
}
  • 新建文件 yii-interactive.bat(windows环境,linux下同理)
@echo off
@setlocal
set YII_PATH=%~dp0
if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe
:: auto_prepend_file参数指定,在打开交互界面前,php预加载运行的文件
"%PHP_COMMAND%" -d  auto_prepend_file="%YII_PATH%yii" -a
@endlocal
  • windows下执行yii-interactive则进入交互模式,并加载好yii的环境,执行 \yii\helpers\VarDumper::dump(['some'=>1])方法;
    打印成功输出

发表评论

电子邮件地址不会被公开。 必填项已用*标注