generator = $generator; $this->session = $session; $this->userManipulator = $userManipulator; $this->userRepository = $userRepository; $this->ACLProvider = $ACLProvider; $this->appbox = $appbox; $this->randomGenerator = $randomGenerator; $this->usrAuthProviderRepository = $usrAuthProviderRepository; $this->entityManager = $entityManager; } public function build(string $id, string $type, bool $display, string $title, array $options = []) { $type = implode('', array_map(function ($chunk) { return ucfirst(strtolower($chunk)); }, explode('-', $type))); $class_name = sprintf('%s\\%s', __NAMESPACE__, $type); if (!class_exists($class_name)) { throw new InvalidArgumentException(sprintf('Invalid provider %s', $type)); } /** @var AbstractProvider $o */ $o = $class_name::create($this->generator, $this->session, $options); // v1 bc compat : can't change $o->setId($id); $o->setDisplay($display); $o->setTitle($title); $o->setOptions($options); $o->setUserManipulator($this->userManipulator); $o->setUserRepository($this->userRepository); $o->setACLProvider($this->ACLProvider); $o->setAppbox($this->appbox); $o->setRandomGenerator($this->randomGenerator); $o->setUsrAuthProviderRepository($this->usrAuthProviderRepository); $o->setEntityManager($this->entityManager); return $o; } }