l91/symfony-intl-fix

提供对新的PHP版本和symfony 2.8的symfony/intl修复

1.0.0 2019-04-26 09:40 UTC

This package is auto-updated.

Last update: 2024-08-26 21:24:27 UTC


README

composer require sulu/symfony-intl-fix

为了避免问题,您还应该在您的 composer.json 中的classmap中排除默认的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;

查看 原始提交