【问题标题】:fig/link-util not compatible with psr/linkfig/link-util 与 psr/link 不兼容
【发布时间】: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 有。实际上类型提示似乎是正确的,但我不明白真正的问题。

标签: php symfony php-psr


【解决方案1】:

看起来fig/link-util 可能需要更新包约束。

fig/link-util:1.2.0 是类型提示的,这意味着它应该有 "psr/link": "^2.0.0" 作为必需的包而不是 "psr/link": "^1.1.0 | ^2.0.0" 它还说它提供了 1.0 psr/link-implementation 但应该说是 2.0。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 2021-01-01
    • 2021-05-19
    • 2018-12-02
    相关资源
    最近更新 更多