首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带接口的PHP7型误差

带接口的PHP7型误差
EN

Stack Overflow用户
提问于 2017-12-31 12:52:38
回答 2查看 104关注 0票数 0

在我的symfony项目中,我遇到了一个供应商的错误。

致命错误:未命名的Symfony\Component\Debug\Exception\FatalThrowableError:类型错误:传递给eZ\Publish\Core\MVC\Legacy\Kernel\Loader::setCLIHandler()的参数1必须实现接口ezpKernelHandler,eZ\发布\Core\MVC\Legacy\Kernel\CLIHandler给定的实例,在/Users/steve/Projects/Web/BuildSuccess/www/vendor/ezsystems/legacy-bridge/mvc/Kernel/Loader.php:255中的/Users/steve/Projects/Web/BuildSuccess/www/vendor/ezsystems/legacy-bridge/mvc/Kernel/Loader.php在线237中调用

但是这个错误很奇怪,因为我检查了eZ\发布\Core\MVC\Legacy\Kernel\CLIHandler实现了接口ezpKernelHandler!

代码语言:javascript
复制
namespace eZ\Publish\Core\MVC\Legacy\Kernel;

use ezpKernelHandler;

class CLIHandler implements ezpKernelHandler
{
   ...
}

我试着用get_class方法进行调试

代码语言:javascript
复制
"eZ\Publish\Core\MVC\Legacy\Kernel\CLIHandler"

我还使用了class_implements方法

代码语言:javascript
复制
array(0) {
}

知道什么附加吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-12-31 13:18:14

我看到这不是您的代码,而是eZ发布本身。正因为如此,您不太可能更新源代码,但是仍然可以做一些事情:

  1. 检查您的编写器自动加载程序配置,以确保正确地解析了ezpKernelHandler类。您可能需要为它注册自定义自动加载器。
  2. 您很可能会收到此错误,因为您正在使用Symfony 3.3+及其最近添加的服务自动配置功能。可以通过禁用受影响服务的服务自动配置来避免引发此错误,请查看示例这里
  3. 因为这个错误是致命的,但是很容易被捕获--如果没有其他的帮助,您可以为这个特定的服务创建自己的服务工厂,并在其中捕获错误。
票数 1
EN

Stack Overflow用户

发布于 2017-12-31 14:24:05

固定:https://github.com/ezsystems/LegacyBridge/issues/132

通过创建app/autooload.php文件可以很容易地解决这个问题,该文件需要供应商/autooload.php和ezpublish_legacy/autooload.php,并更改bin/控制台以要求该文件,而不是供应商/autooload.php。

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

https://stackoverflow.com/questions/48042608

复制
相关文章

相似问题

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