public function DurationFieldCommand::prepareModuleUninstall in Duration Field 3.0.x
Same name and namespace in other branches
- 8.2 src/Drush/DurationFieldCommand.php \Drupal\duration_field\Drush\DurationFieldCommand::prepareModuleUninstall()
Prepares the Duration Field module for uninstall.
Deletes all data and field instances.
@command duration_field:prepare_uninstall @aliases df-pu @usage duration_field:prepare_uninstall Deletes all duration field data and duration field fields from the system.
File
- src/
Drush/ DurationFieldCommand.php, line 69
Class
- DurationFieldCommand
- Drush commands for the Duration Field module.
Namespace
Drupal\duration_field\DrushCode
public function prepareModuleUninstall() {
if ($this
->confirm('This will delete all duration field in the database, with no means to retrieve it. Do you wish to continue?')) {
$this
->output()
->writeln("The following fields have been deleted:");
$fields = duration_field_get_duration_fields();
foreach ($fields as $field) {
$this->output
->writeln($field['entity_type'] . ':' . $field['bundle'] . ':' . $field['field']
->getName());
// Delete field.
$config = FieldConfig::loadByName($field['entity_type'], $field['bundle'], $field['field']
->getName());
if ($config) {
$config
->delete();
}
// Delete field storage.
$storage = FieldStorageConfig::loadByName($field['entity_type'], $field['field']
->getName());
if ($storage) {
$storage
->delete();
}
}
}
else {
$this
->output()
->writeln("No loss of duration for you");
}
}