X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=vendor%2Fdrupal%2Fconsole%2Fsrc%2FUtils%2FValidator.php;fp=vendor%2Fdrupal%2Fconsole%2Fsrc%2FUtils%2FValidator.php;h=b81c0ed653344eac0f570dc0484353902421b9e6;hb=eba34333e3c89f208d2f72fa91351ad019a71583;hp=12b522786c83bbfefc34c80b38dc95f3dc8c8b2a;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;p=yaffs-website diff --git a/vendor/drupal/console/src/Utils/Validator.php b/vendor/drupal/console/src/Utils/Validator.php index 12b522786..b81c0ed65 100644 --- a/vendor/drupal/console/src/Utils/Validator.php +++ b/vendor/drupal/console/src/Utils/Validator.php @@ -8,6 +8,7 @@ namespace Drupal\Console\Utils; use Drupal\Console\Extension\Manager; +use Drupal\Console\Core\Style\DrupalStyle; class Validator { @@ -19,14 +20,23 @@ class Validator protected $appRoot; + /* + * TranslatorManager + */ + protected $translatorManager; + /** * Site constructor. * - * @param Manager $extensionManager + * @param Manager $extensionManager + * @param TranslatorManager $translatorManager */ - public function __construct(Manager $extensionManager) - { + public function __construct( + Manager $extensionManager, + TranslatorManager $translatorManager + ) { $this->extensionManager = $extensionManager; + $this->translatorManager = $translatorManager; } public function validateModuleName($module) @@ -114,29 +124,29 @@ class Validator return $module_path; } - public function validateModuleDependencies($dependencies) + public function validateMachineNameList($list) { - $dependencies_checked = [ + $list_checked = [ 'success' => [], 'fail' => [], ]; - if (empty($dependencies)) { + if (empty($list)) { return []; } - $dependencies = explode(',', $this->removeSpaces($dependencies)); - foreach ($dependencies as $key => $module) { + $list = explode(',', $this->removeSpaces($list)); + foreach ($list as $key => $module) { if (!empty($module)) { if (preg_match(self::REGEX_MACHINE_NAME, $module)) { - $dependencies_checked['success'][] = $module; + $list_checked['success'][] = $module; } else { - $dependencies_checked['fail'][] = $module; + $list_checked['fail'][] = $module; } } } - return $dependencies_checked; + return $list_checked; } /** @@ -259,4 +269,31 @@ class Validator return array_diff($moduleList, $modules); } + + /** + * @param string $extensions_list + * @param string $type + * @param DrupalStyle $io + * + * @return array + */ + public function validateExtensions($extensions_list, $type, DrupalStyle $io) + { + $extensions = $this->validateMachineNameList($extensions_list); + // Check if all extensions are available + if ($extensions) { + $checked_extensions = $this->extensionManager->checkExtensions($extensions['success'], $type); + if (!empty($checked_extensions['no_extensions'])) { + $io->warning( + sprintf( + $this->translatorManager->trans('validator.warnings.extension-unavailable'), + implode(', ', $checked_extensions['no_extensions']) + ) + ); + } + $extensions = $extensions['success']; + } + + return $extensions; + } }