сулу/symfony-intl-fix

为新的 PHP 版本提供 symfony/intl 修复,也适用于 symfony 2.8

1.0.0 2019-04-26 09:40 UTC

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;

查看 原始提交