0

如果我运行php artisan tinkerCLI 将打开

Psy Shell v0.8.6 (PHP 7.0.8 — cli) by Justin Hileman
>>>

现在我输入一个像“test”这样的词,然后按回车键。

  • 我进入了什么模式?
  • 如何退出此模式?(ctrl+c 退出 tinker,但实际上我只想能够像往常一样再次执行命令,这意味着我输入一个命令,当我按下返回键时,它将被执行)
  • 如何在这种模式下执行命令。如果我在此模式下按 Enter,我将移至下一行,但不会执行该命令。
4

2 回答 2

1

当我键入 run PsySH 然后键入test时,我不会进入其他模式。我实际上得到一个错误,内容如下:

PHP 警告:在第 1 行的 Psy Shell 代码中使用未定义的常量测试 - 假定为“测试”(这将在 PHP 的未来版本中引发错误)

这可能是版本问题。

但...

我想我知道你说的模式。您可以通过键入一个单引号'并按 Enter 进入该模式。

PsySH 所做的是让您跨多行提供输入。如果在下一行您只是键入';,您应该会看到"\n",因为它捕获了您按下的 Enter。

如果您想退出此模式,您可以:

  • 关闭你所做的任何开场白。您可以通过键入“ + Enter”、“ + Enter”、单引号和许多其他内容来进入此模式。您需要为您开始的语句键入适当的结束语。对于一个函数,. 对于字符串,或等。function {for(;;) {}'"
  • 按 ^D (Control+D)。这将使您回到 PsySH 提示符。这也适用于许多常规系统 shell,因为^D发送End-Of-File字符。
于 2019-10-15T13:36:18.653 回答
0
  • Tinker是一个命令行工具,可让您从命令行与 Laravel 进行交互。
  • 您可以使用 ctrl+c(如您所述)或键入exit;并按 Enter 退出修补程序模式。
  • Tinker 基于PsySH,您可以将此模式视为逐行交互式 PHP 解析器。

因此,例如,您可以执行以下操作:

$ php artisan tinker
Psy Shell v0.7.2 (PHP 5.6.30-7+deb.sury.org~trusty+1 — cli) by Justin Hileman
>>> $testString = "test";
=> "test"
>>> echo $testString;
test⏎
=> null
>>> exit;
Exit:  Goodbye.
于 2017-06-27T16:44:33.250 回答