registry[$name] = $grant; return $this; } public function getGrant(string $name) : AbstractGrant { if (!isset($this->registry[$name])) { $this->registerDefaultGrant($name); } return $this->registry[$name]; } protected function registerDefaultGrant(string $name) : self { $class = \str_replace(' ', '', \ucwords(\str_replace(['-', '_', ' ', $name]))); $class = 'phpOMS\\OAuth2\\Grant\\' . $class; $this->checkGrant($class); return $this->setGrant($name, new $class()); } }