猿问

使用 php artisan tinker 时找不到类 Psy/ShellOutput

我创建了一个新项目

composer create-project --prefer-dist laravel/laravel test-web

命令。当我尝试使用 php artisan tinker 测试文档中描述的一些内容时,我得到了以下不停出现的错误:

PHP Error: Class 'Psy/ShellOutput' not found in C:/Users/Development/Projects/laravel/test-web/vendor/psy/psysh/src/Shell.php on line 374

它一直在命令行泛滥,直到我按下 CTRL+C

我没有在网上找到任何与该错误相关的内容。我还检查了该类的文件,使用了 composer update,尝试了 laravel new test-web-2 并没有。

在旧项目中运行 php artisan tinker 不会给我任何错误,所以我认为这可能是关于更新版本?有没有办法让它工作?我在 Windows 10,PHP 7.3.3 上运行它


慕娘9325324
浏览 188回答 3
3回答

沧海一幻觉

PsySH v0.9.10 有一个错误——一个缺失的use语句,多亏了一个拙劣的git rebase——大约有 20 分钟的时间安装它会选择那个版本。composer update应该为您提供经过认证的无错误 v0.9.11!(至少来自那个错误🙂)

婷婷同学_

这可能是很多事情,取决于您添加到基本发行版的内容(如果有的话)......但我遇到的一些事情可能会对您有所帮助:清除作曲家自动加载缓存:composer dump-autoload如果这没有帮助,则可能是名称空间/使用问题。如果您添加了 tinker 可能试图访问的任何新类,请确保与使用它的任何类中的语句namespace匹配。use因此,如果类Foo的命名空间如下:namespace App\Stuff\Foo;确保使用它的任何其他类将其拉入正确的namespace:use App\Stuff\Foo;编辑:根据下面的 OP 评论,该use条款似乎确实是罪魁祸首。最新版本可能缺少以下行:/vendor/psy/psysh/src/Shell.phpuse Psy\Output\ShellOutput;对于其他提出此问题的人:虽然这将暂时修复问题,但不建议更改供应商文件;下次您通过 composer 更新它时,它可能会覆盖您的更改。在对包进行排序之前,您最好恢复到稳定版本。

30秒到达战场

我在全新安装后也遇到了这个问题,但是当我尝试使用另一个刚刚创建的项目时,它没有出现这个错误。我的解决方案是添加use Psy\Output\ShellOutput;在/vendor/psy/psysh/src/Shell.php
随时随地看视频慕课网APP
我要回答