【发布时间】:2022-08-09 21:19:04
【问题描述】:
我安装了新的 Symfony v5.3,ApiPlatform v2.6.6。当我输入/api url 时,我得到了那个错误:
Fatal error: Declaration of Fig\\Link\\Link::withHref(Stringable|string $href):
Symfony\\Component\\ErrorHandler\\DebugClassLoader must be compatible with
Psr\\Link\\EvolvableLinkInterface::withHref($href) in
/api-platform-course/vendor/fig/link-util/src/Link.php on line 22
我用编辑器打开了该文件:vendor/fig/link-util/src/EvolvableLinkTrait.php,它正在实现该接口:Psr\\Link\\EvolvableLinkInterface。似乎这个特征没有正确实现方法。例如接口的方法是这样的:
public function withHref(string|\\Stringable $href);
EvolvableLinkTrait::withHref 方法实现是这样的:
public function withHref(\\Stringable|string $href): static
如您所见,原始方法没有static 关键字,但实现有。我从实现中删除了static 返回类型提示,但我仍然遇到同样的错误。然后我从实现中删除了所有类型提示并且错误消失了。我目前的实现是:
public function withHref($href)
这种方法一切都很好。其他方法也有同样的问题,我用同样的方法修复了(withRel()、withoutRel()、withAttribute()、withoutAttribute() 方法)。
我正在使用 PHP 8.0 和 Nginx 服务器。你为这个问题提供了什么?我必须更改软件包版本或降低 Symfony 版本或其他任何东西吗?谢谢。
-
我查看了 composer-lock.json 文件,我看到 fig/link-util 版本 1.2.0 已加载。我安装了 1.1.2 版本,现在一切正常。 1.1.2 版本没有类型提示,1.2.0 有。实际上类型提示似乎是正确的,但我不明白真正的问题。