сулу / symfony-intl-fix
为新的 PHP 版本提供 symfony/intl 修复,也适用于 symfony 2.8
1.0.0
2019-04-26 09:40 UTC
Requires
- php: ^5.5 || ^7.0
This package is auto-updated.
Last update: 2024-08-27 00:11:29 UTC
README
composer require sulu/symfony-intl-fix
为了避免问题,您还应该从您的 composer.json
中的类映射中排除默认的 Locale 类
{ "autoload": { "exclude-from-classmap": [ "vendor/symfony/intl/Locale.php", "vendor/symfony/symfony/src/Symfony/Component/Intl/Locale.php" ] } }
受影响的 PHP 版本
^7.3.4
^7.2.17
^7.1.28
如果您使用上述 PHP 版本之一,并且使用比 ^3.4.24
或 ^4.2.7
更旧的 Symfony Intl 版本,symfony/intl 将陷入无限循环。
此包将覆盖 Symfony Locale 以避免无限循环。使用 Symfony 3 或 4 的项目只需更新他们的 symfony 包即可。此修复主要针对 Symfony 2 项目。
为了修复问题,都做了哪些更改?
Locale.php
中的更改非常简单
- return locale_compose($localeSubTags); + $fallback = locale_compose($localeSubTags); + + return false !== $fallback ? $fallback : null;
查看 原始提交。