Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
33.33% |
1 / 3 |
CRAP | |
55.56% |
5 / 9 |
| RequiredModuleUninstallValidator | |
0.00% |
0 / 1 |
|
33.33% |
1 / 3 |
7.19 | |
55.56% |
5 / 9 |
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| validate | |
100.00% |
1 / 1 |
2 | |
100.00% |
5 / 5 |
|||
| getModuleInfoByModule | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 2 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Extension\RequiredModuleUninstallValidator. | |
| */ | |
| namespace Drupal\Core\Extension; | |
| use Drupal\Core\StringTranslation\StringTranslationTrait; | |
| use Drupal\Core\StringTranslation\TranslationInterface; | |
| /** | |
| * Ensures that required modules cannot be uninstalled. | |
| */ | |
| class RequiredModuleUninstallValidator implements ModuleUninstallValidatorInterface { | |
| use StringTranslationTrait; | |
| /** | |
| * Constructs a new RequiredModuleUninstallValidator. | |
| * | |
| * @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation | |
| * The string translation service. | |
| */ | |
| public function __construct(TranslationInterface $string_translation) { | |
| $this->stringTranslation = $string_translation; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function validate($module) { | |
| $reasons = []; | |
| $module_info = $this->getModuleInfoByModule($module); | |
| if (!empty($module_info['required'])) { | |
| $reasons[] = $this->t('The @module module is required', ['@module' => $module_info['name']]); | |
| } | |
| return $reasons; | |
| } | |
| /** | |
| * Returns the module info for a specific module. | |
| * | |
| * @param string $module | |
| * The name of the module. | |
| * | |
| * @return array | |
| * The module info, or NULL if that module does not exist. | |
| */ | |
| protected function getModuleInfoByModule($module) { | |
| $modules = system_rebuild_module_data(); | |
| return isset($modules[$module]->info) ? $modules[$module]->info : []; | |
| } | |
| } |