Laravel Tinker -箭头键在shell中不工作

voj3qocg  于 2023-08-07  发布在  Shell
关注(0)|答案(4)|浏览(124)

我正在开始一个Laravel 5项目,并试图使用“php artisan tinker”(psy shell)运行一些实验,但我遇到了一些奇怪的事情。在tinker/psy shell中,按下任何一个箭头键都是将字符文字打印到屏幕上,而不是执行预期的行为(左右移动字符,上下循环最近的命令)。
向上是输出^[[A。向下是输出^[[B。右边是输出^[[C。左为输出^[[D
这可能是我终端的问题,而不是Laravel的bug。我在运行php -a时也遇到了同样的错误行为。
我在OSX上运行终端,使用xterm仿真。

gg0vcinb

gg0vcinb1#

PHP REPL没有实现readline的行编辑和历史记录功能。我不知道是否有一个PHP模块实现了它,但你可以这样做:

rlwrap php artisan tinker

字符串
您可能需要为您的操作系统安装rlwrap。

798qvoo8

798qvoo82#

这是由于PHP没有使用readline支持。您可以在使用--with-readline参数编译和构建PHP时启用此功能。
http://php.net/manual/en/features.commandline.interactive.php

xeufq47z

xeufq47z3#

我的操作系统:centos我解决了这个问题:

sudo yum install rlwrap
alias tinker='rlwrap php artisan tinker'

字符串

snz8szmq

snz8szmq4#

在我的例子中,我需要安装php7-readline

sudo zypper in php7-readline                                                       
[sudo] password for root: 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  php7-readline

1 new package to install.
Overall download size: 64.0 KiB. Already cached: 0 B. After the operation, additional 30.9 KiB will be used.
Continue? [y/n/...? shows all options] (y): 
Retrieving package php7-readline-7.2.1-1.1.x86_64                                                                 (1/1),  64.0 KiB ( 30.9 KiB unpacked)
Retrieving: php7-readline-7.2.1-1.1.x86_64.rpm ......................................................................................[done (8.4 KiB/s)]
Checking for file conflicts: ....................................................................................................................[done]
(1/1) Installing: php7-readline-7.2.1-1.1.x86_64 ................................................................................................[done]

字符串

相关问题