为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕娘9325324 2022-05-27 14:48:01
我创建了一个新项目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 上运行它
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

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



查看完整回答
反对 回复 2022-05-27
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

这可能是很多事情,取决于您添加到基本发行版的内容(如果有的话)......但我遇到的一些事情可能会对您有所帮助:

清除作曲家自动加载缓存:

composer dump-autoload

如果这没有帮助,则可能是名称空间/使用问题。如果您添加了 tinker 可能试图访问的任何新类,请确保与使用它的任何类中的语句namespace匹配。use

因此,如果类Foo的命名空间如下:

namespace App\Stuff\Foo;

确保使用它的任何其他类将其拉入正确的namespace

use App\Stuff\Foo;

编辑:

根据下面的 OP 评论,该use条款似乎确实是罪魁祸首。最新版本可能缺少以下行:

/vendor/psy/psysh/src/Shell.php

use Psy\Output\ShellOutput;

对于其他提出此问题的人:虽然这将暂时修复问题,但不建议更改供应商文件;下次您通过 composer 更新它时,它可能会覆盖您的更改。在对包进行排序之前,您最好恢复到稳定版本。


查看完整回答
反对 回复 2022-05-27
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

我在全新安装后也遇到了这个问题,但是当我尝试使用另一个刚刚创建的项目时,它没有出现这个错误。

我的解决方案是添加

use Psy\Output\ShellOutput;

/vendor/psy/psysh/src/Shell.php


查看完整回答
反对 回复 2022-05-27
  • 3 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号