user = $user; $this->acl = $acl; $this->aclManager = $aclManager; $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; } if ($user) { $acl = $this->aclManager->createUserAcl($user); } else { $acl = $this->acl; $user = $this->user; } $selectManager = $this->injectableFactory->createWith($className, [ 'user' => $user, 'acl' => $acl, ]); $selectManager->setEntityType($entityType); return $selectManager; } }