mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-03 05:48:11 +08:00
Fix caching in Formatter::getUnitMessage() (#19445)
* Fix caching in `Formatter::getUnitMessage()` * Update FormatterTest.php * Update CHANGELOG.md
This commit is contained in:
@ -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
|
||||
|
||||
@ -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) . '}';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -34,14 +34,15 @@ class FormatterTest extends TestCase
|
||||
'timeZone' => 'UTC',
|
||||
'language' => 'ru-RU',
|
||||
]);
|
||||
$this->formatter = new Formatter(['locale' => 'en-US']);
|
||||
if (!isset($this->formatter)) {
|
||||
$this->formatter = new Formatter(['locale' => 'en-US']);
|
||||
}
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
IntlTestHelper::resetIntlStatus();
|
||||
$this->formatter = null;
|
||||
}
|
||||
|
||||
public function testFormat()
|
||||
|
||||
Reference in New Issue
Block a user