php - Symfony 5.2.3 接口(interface)类型提示

标签 php symfony composer-php type-hinting symfony5

自从我更新了我的 composer.json (我刚刚将 symfonyconsoledotenvframework-bundleyaml 版本从 "5.0.* 切换到 "5.2.* ),我有此错误:

syntax error, unexpected '|', expecting variable (T_VARIABLE)来自文件 vendor/psr/link/src/EvolvableLinkInterface.php 第 27 行.

(public function withHref(string|\Stringable $href);)

我决定删除我的一个可选参数类型提示(例如 \Stringable )并且效果很好。

我正在PHP 7.4.15下运行.

你知道我该如何修复它吗?

最佳答案

看来是我们的好哥们https://github.com/php-fig使用 Union Type Hints 抢先一步仅适用于 php8。他们不提供对 php7 的支持。由于某种原因,他们从 php5 升级到 php8。您可以在 packagist 中看到这一点:

psr/link v1.0.0psr/link v1.1.0

也位于:

psr/log v1.1.4psr/log v2.0.0

这也会在依赖 psr/log 并运行 php7 的 Laravel 7 中引起问题。

您需要指定较旧的软件包版本:

Composer 需要 psr/link“1.0.*”

Composer 需要 psr/log "^1.0"

关于php - Symfony 5.2.3 接口(interface)类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66100477/

相关文章:

php - Symfony2 ManytoMany 双向关系 - 如何手动持久化

php - 如何列出 Laravel 项目中安装的所有 Composer 模块和 GitHub URL?

php - Laravel/流明 PSR-4 : If I put classes into subdirectories do I have to use different namespaces then?

php - Composer 给出错误, "Class Not Found"

php - 来自 nginx : should the application use it somehow? 的 $ssl_early_data

Symfony 2 - 在 ROLE_USER 下添加用户角色

PHP getenv ('HOSTNAME' )

php - Controller 必须返回响应(给定为空)。您是否忘记在 Controller 中的某处添加返回语句?请

php - 日期时间 Paypal 返回

PHP 抓取没有扩展名的远程图像