PHP交互式shell,自动回显和一个新行


PHP interactive shell, auto echo and a new line

问候各位程序员!

有没有办法让PHPs交互式shell php -a的行为更像Rails控制台或Chrome中的控制台?我已经查看了php命令的标志,但没有骰子。

我得到的:

php > $a = 0;
php > $a;
php > echo $a;
0php > 

我想要什么

php > $a = 0;
0
php > $a;
0
php > echo $a;
0
php > 

解决这个问题至少有三种可能性:

  1. 手动将PHP_EOL添加到您的所有echo:echo $a . PHP_EOL
  2. 在官方的php思想wiki上介绍你的想法,然后等到有人实现它
  3. 学习外部贡献者的php-git工作流,创建所需的功能并将补丁发送给开发人员

截至2022年,PsySH似乎是一个现代有效的问题解决方案:

Psy Shell v0.11.5 (PHP 7.4.3 — cli) by Justin Hileman
>>> $a = 0
=> 0
>>> $a
=> 0
>>> echo $a
0⏎

更多:

  • 正如上面所看到的,分号是可选的
  • echo表达式的输出略有不同
  • 在代码库中的任何位置丢弃一条eval语句就足以设置由该REPL提供支持的断点

检查Boris,描述为"PHP缺少REPL"。echoprint仍然需要手动换行,但裸表达式会被评估并打印出来:

[1] boris> $a = 0;
// 0
[2] boris> $a;
// 0
[3] boris> echo $a;
0[4] boris>