container = $container; } protected function getContainer() { return $this->container; } public function checkAuthRequired(string $name) : bool { $className = $this->getClassName($name); if (!$className) { echo $name; die; throw new NotFound(); } return $className::$authRequired; } public function checkNotStrictAuth(string $name) : bool { $className = $this->getClassName($name); if (!$className) { throw new NotFound(); } return $className::$notStrictAuth; } public function run(string $name, array $data = []) { $className = $this->getClassName($name); if (!$className) { throw new NotFound(); } $entryPoint = new $className($this->container); $entryPoint->run($data); } protected function getClassName(string $name) : ?string { $name = ucfirst($name); return $this->getContainer()->get('classFinder')->find('EntryPoints', $name); } }