Fix to do not delete used message files with nested category names (#17021)

This commit is contained in:
Albert Borsos
2019-01-06 22:20:25 +01:00
committed by Alexander Makarov
parent b4cb42fb9d
commit ec1809bed2
3 changed files with 46 additions and 19 deletions

View File

@ -4,6 +4,7 @@ Yii Framework 2 Change Log
2.0.16 under development
------------------------
- Bug #17021: Fix to do not remove existing message category files in a subfolder (albertborsos)
- Bug #16991: Removed usage of `utf8_encode()` from `Request::resolvePathInfo()` (GHopperMSK)
- Bug #16974: Regular Expression Validator to include support for 'u' (UTF-8) modifier (Dzhuneyt)
- Chg #16941: Set `yii\console\controllers\MigrateController::useTablePrefix` to true as default value (GHopperMSK)

View File

@ -669,7 +669,7 @@ EOD;
}
if ($removeUnused) {
$this->deleteUnusedPhpMessageFiles($dirName, array_keys($messages));
$this->deleteUnusedPhpMessageFiles(array_keys($messages), $dirName);
}
}
@ -889,13 +889,16 @@ EOD;
}
}
private function deleteUnusedPhpMessageFiles($dirName, $existingCategories)
private function deleteUnusedPhpMessageFiles($existingCategories, $dirName)
{
$messageFiles = FileHelper::findFiles($dirName);
foreach ($messageFiles as $file) {
$category = preg_replace('#\.php$#', '', basename($file));
foreach ($messageFiles as $messageFile) {
$categoryFileName = str_replace($dirName, '', $messageFile);
$categoryFileName = ltrim($categoryFileName, DIRECTORY_SEPARATOR);
$category = preg_replace('#\.php$#', '', $categoryFileName);
if (!in_array($category, $existingCategories, true)) {
unlink($file);
unlink($messageFile);
}
}
}