user = $user; $this->acl = $acl; $this->aclManagerProvider = $aclManagerProvider; $this->injectableFactory = $injectableFactory; $this->classFinder = $classFinder; } public function create(string $entityType, ?User $user = null): SelectManager { $className = $this->classFinder->find('SelectManagers', $entityType); if (!$className || !class_exists($className)) { $className = $this->defaultClassName; } /** @var class-string $className */ if ($user) { $acl = $this->aclManagerProvider->get($user)->createUserAcl($user); } else { $acl = $this->acl; $user = $this->user; } $selectManager = $this->injectableFactory->createWith($className, [ 'user' => $user, 'acl' => $acl, ]); $selectManager->setEntityType($entityType); return $selectManager; } }