public function TermDevelGenerate::validateDrushParams in Devel 8.3
Same name and namespace in other branches
- 8 devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php \Drupal\devel_generate\Plugin\DevelGenerate\TermDevelGenerate::validateDrushParams()
- 8.2 devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php \Drupal\devel_generate\Plugin\DevelGenerate\TermDevelGenerate::validateDrushParams()
- 4.x devel_generate/src/Plugin/DevelGenerate/TermDevelGenerate.php \Drupal\devel_generate\Plugin\DevelGenerate\TermDevelGenerate::validateDrushParams()
Responsible for validating Drush params.
Parameters
array $args: The command arguments.
array $options: The commend options.
Return value
array An array of values ready to be used for generateElements().
Overrides DevelGenerateBaseInterface::validateDrushParams
File
- devel_generate/
src/ Plugin/ DevelGenerate/ TermDevelGenerate.php, line 334
Class
- TermDevelGenerate
- Provides a TermDevelGenerate plugin.
Namespace
Drupal\devel_generate\Plugin\DevelGenerateCode
public function validateDrushParams(array $args, array $options = []) {
if ($this
->isDrush8()) {
$bundles = _convert_csv_to_array(drush_get_option('bundles'));
}
else {
$bundles = StringUtils::csvToarray($options['bundles']);
}
if (count($bundles) < 1) {
throw new \Exception(dt('Please provide a vocabulary machine name (--bundles).'));
}
foreach ($bundles as $bundle) {
// Verify that each bundle is a valid vocabulary id.
if (!$this->vocabularyStorage
->load($bundle)) {
throw new \Exception(dt('Invalid vocabulary machine name: @name', [
'@name' => $bundle,
]));
}
}
$number = array_shift($args);
if ($number === NULL) {
$number = 10;
}
if (!$this
->isNumber($number)) {
throw new \Exception(dt('Invalid number of terms: @num', [
'@num' => $number,
]));
}
$values = [
'num' => $number,
'kill' => $this
->isDrush8() ? drush_get_option('kill') : $options['kill'],
'title_length' => 12,
'vids' => $bundles,
];
$add_language = $this
->isDrush8() ? explode(',', drush_get_option('languages', '')) : StringUtils::csvToArray($options['languages']);
// Intersect with the enabled languages to make sure the language args
// passed are actually enabled.
$valid_languages = array_keys($this->languageManager
->getLanguages(LanguageInterface::STATE_ALL));
$values['add_language'] = array_intersect($add_language, $valid_languages);
$translate_language = $this
->isDrush8() ? explode(',', drush_get_option('translations', '')) : StringUtils::csvToArray($options['translations']);
$values['translate_language'] = array_intersect($translate_language, $valid_languages);
return $values;
}