getClassName($name); if (!$className) { throw new Error("Job '{$name}' not found."); } return $this->createByClassName($className); } /** * Create a job by a class name. * * @param class-string $className * @return Job|JobDataLess */ public function createByClassName(string $className): object { $job = $this->injectableFactory->create($className); return $job; } /** * @return ?class-string */ private function getClassName(string $name): ?string { /** @var ?class-string $className */ $className = $this->metadataProvider->getJobClassName($name); if ($className) { return $className; } /** @var ?class-string */ return $this->classFinder->find('Jobs', ucfirst($name)); } }