getCrud($crud); } /** * @param string $layer * * @return string */ private function getCRUDNamespace(string $layer, string $crud): string { return 'App\\Domain\\SecureCRUDManagement\\CRUD\\'.$this->getCrud($crud).'\\'.$this->getClassName($layer, $crud).'Service'; } /** * {@inheritdoc} * * @see \App\Domain\SecureCRUDManagement\Factory\SecureCRUDFactoryServiceInterface::create() */ public function create(RightInterface $requestedRight): SecureCRUDServiceInterface { $namespace = $this->getCRUDNamespace($requestedRight->getLayer(), $requestedRight->getCrud()); return new $namespace($this->requestStack, $this->security, $this->entityManager); } }