setIdentifier($class) ->setStorageClass($class) ->setText($definition['backend']) ->addAuthScheme(Builtin::SCHEME_BUILTIN) ->setLegacyAuthMechanism($authMechanism) ; foreach ($definition['configuration'] as $name => $placeholder) { $flags = DefinitionParameter::FLAG_NONE; $type = DefinitionParameter::VALUE_TEXT; if ($placeholder[0] === '&') { $flags = DefinitionParameter::FLAG_OPTIONAL; $placeholder = substr($placeholder, 1); } switch ($placeholder[0]) { case '!': $type = DefinitionParameter::VALUE_BOOLEAN; $placeholder = substr($placeholder, 1); break; case '*': $type = DefinitionParameter::VALUE_PASSWORD; $placeholder = substr($placeholder, 1); break; case '#': $type = DefinitionParameter::VALUE_HIDDEN; $placeholder = substr($placeholder, 1); break; } $this->addParameter((new DefinitionParameter($name, $placeholder)) ->setType($type) ->setFlags($flags) ); } if (isset($definition['priority'])) { $this->setPriority($definition['priority']); } if (isset($definition['custom'])) { $this->addCustomJs($definition['custom']); } if (isset($definition['has_dependencies']) && $definition['has_dependencies']) { $this->hasDependencies = true; } } /** * @return MissingDependency[] */ public function checkDependencies() { if ($this->hasDependencies) { return $this->doCheckDependencies(); } return []; } }