Browse Source

Merge pull request #16316 from cakephp/i18n-cycle

Fix memory leak in TranslatorRegistry
othercorey 4 years ago
parent
commit
e92e1ed9e9
1 changed files with 5 additions and 0 deletions
  1. 5 0
      src/I18n/TranslatorRegistry.php

+ 5 - 0
src/I18n/TranslatorRegistry.php

@@ -201,6 +201,11 @@ class TranslatorRegistry
         $keyName = str_replace('/', '.', $name);
         $key = "translations.{$keyName}.{$locale}";
         $translator = $this->_cacher->get($key);
+
+        // PHP <8.1 does not correctly garbage collect strings created
+        // by unserialized arrays.
+        gc_collect_cycles();
+
         if (!$translator || !$translator->getPackage()) {
             $translator = $this->_getTranslator($name, $locale);
             $this->_cacher->set($key, $translator);