首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类Psy/ShellOutput在使用php artisan tinker时找不到

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

Stack Overflow用户
提问于 2019-11-27 22:11:08
回答 3查看 695关注 0票数 3

我创建了一个新项目

代码语言:javascript
复制
composer create-project --prefer-dist laravel/laravel test-web

命令。当我试图使用php手工修补程序测试文档中描述的一些内容时,我得到了以下不间断的出现错误:

代码语言:javascript
复制
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。

我还没有在网上发现任何与错误有关的东西。我还检查了班级的文件是否在那里,使用了作曲家的更新,试用了laravel新的测试-web-2和什么都没有。

在较旧的项目中运行php手工修补程序不会给我任何错误,所以我认为这可能是一个更新的版本?有办法让它起作用吗?我正在Windows 10上运行它,PHP 7.3.3

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-28 02:23:27

PsySH v0.9.10有一个bug--一个缺失的use语句,多亏了一个拙劣的git rebase-and,在一个大约20分钟的窗口中,安装它就可以获得该版本。composer update应该为您提供v0.9.11,这是认证的bug免费!(至少是从那只虫子身上)

票数 4
EN

Stack Overflow用户

发布于 2019-11-27 22:19:45

这可能是很多事情,取决于你在基础发行版中添加了什么(如果有的话).但我遇到的几件事可能会对你有所帮助:

清除编写器自动缓存:

代码语言:javascript
复制
composer dump-autoload

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

因此,如果类Foo的命名空间类似于这样:

代码语言:javascript
复制
namespace App\Stuff\Foo;

确保使用它的任何其他类都使用正确的namespace将其提取进来。

代码语言:javascript
复制
use App\Stuff\Foo;

编辑:

根据任择议定书下面的评论,use条款似乎确实是罪魁祸首。最近的版本可能遗漏了以下一行:

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

代码语言:javascript
复制
use Psy\Output\ShellOutput;

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

票数 2
EN

Stack Overflow用户

发布于 2019-11-27 23:02:01

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

我的解决方案是添加

use Psy\Output\ShellOutput;

在……里面

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59079124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档