Fix caching in Formatter::getUnitMessage() (#19445)

* Fix caching in `Formatter::getUnitMessage()`

* Update FormatterTest.php

* Update CHANGELOG.md
This commit is contained in:
Anton
2022-06-16 12:32:08 +03:00
committed by GitHub
parent f72310c398
commit 474a67da99
3 changed files with 7 additions and 5 deletions

View File

@ -35,6 +35,7 @@ Yii Framework 2 Change Log
- Enh #19416: Update and improve configurations for `yii\console\controllers\MessageController` (WinterSilence)
- Bug #19403: Fix types in `yii\web\SessionIterator` (WinterSilence)
- Enh #19420: Update list of JS callbacks in `yii\widgets\MaskedInput` (WinterSilence)
- Bug #19445: Fix caching in `yii\i18n\Formatter::getUnitMessage()` (WinterSilence)
2.0.45 February 11, 2022

View File

@ -1643,8 +1643,8 @@ class Formatter extends Component
*/
private function getUnitMessage($unitType, $unitFormat, $system, $position)
{
if (isset($this->_unitMessages[$unitType][$system][$position])) {
return $this->_unitMessages[$unitType][$system][$position];
if (isset($this->_unitMessages[$unitType][$unitFormat][$system][$position])) {
return $this->_unitMessages[$unitType][$unitFormat][$system][$position];
}
if (!$this->_intlLoaded) {
throw new InvalidConfigException('Format of ' . $unitType . ' is only supported when PHP intl extension is installed.');
@ -1676,7 +1676,7 @@ class Formatter extends Component
$message[] = "$key{{$value}}";
}
return $this->_unitMessages[$unitType][$system][$position] = '{n, plural, ' . implode(' ', $message) . '}';
return $this->_unitMessages[$unitType][$unitFormat][$system][$position] = '{n, plural, ' . implode(' ', $message) . '}';
}
/**