Fixes #16580: Delete unused php message files in MessageController if $removeUnused option is on

This commit is contained in:
Groonya
2018-12-05 01:35:44 +03:00
committed by Alexander Makarov
parent b4adada51e
commit 8150cd1ed4
3 changed files with 39 additions and 0 deletions

View File

@ -665,6 +665,10 @@ EOD;
$this->stdout("Saving messages to $coloredFileName...\n");
$this->saveMessagesCategoryToPHP($msgs, $file, $overwrite, $removeUnused, $sort, $category, $markUnused);
}
if ($removeUnused) {
$this->deleteUnusedPhpMessageFiles($dirName, array_keys($messages));
}
}
/**
@ -883,6 +887,17 @@ EOD;
}
}
private function deleteUnusedPhpMessageFiles($dirName, $existingCategories)
{
$messageFiles = FileHelper::findFiles($dirName);
foreach ($messageFiles as $file) {
$category = preg_replace('#\.php$#', '', basename($file));
if (!in_array($category, $existingCategories, true)) {
unlink($file);
}
}
}
/**
* @param string $configFile
* @throws Exception If configuration file does not exists.