Laravel修补模式

时间:2017-06-27 16:36:31

标签: laravel tinker

如果我运行php artisan tinker,CLI将以

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

现在我输入一个像'test'这样的单词,然后按返回键。

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

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分:0)

当我键入run PsySH然后键入test时,我没有进入其他模式。我实际上收到一条错误消息:

  

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

这可能是版本问题。

但是...

我想我知道您正在谈论的模式。您可以通过键入一个单引号'并按Enter键来进入该模式。

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

如果要退出此模式,则可以:

  • 关闭您所做的所有开幕词。您可以通过键入“ function { + Enter”,“ for(;;) { + Enter”,单引号和许多其他内容来输入此模式。您需要为您开始的语句键入适当的结尾。对于功能,}。对于字符串,'"
  • 按^ D(Ctrl + D)。这将使您返回到PsySH提示符。在^D发送End-Of-File字符的情况下,这在许多常规系统外壳程序中也将起作用。