authenticationLibs[$lib]; $instance = new $class($config); if ($userModel === null) { $userModel = new UserModel(); } if ($loginModel === null) { $loginModel = new LoginModel(); } return $instance->setUserModel($userModel) ->setLoginModel($loginModel); } /** * @return mixed|$this */ public static function authorization( Model $groupModel = null, Model $permissionModel = null, Model $userModel = null, bool $getShared = true ) { if ($getShared) { return self::getSharedInstance('authorization', $groupModel, $permissionModel, $userModel); } if ($groupModel === null) { $groupModel = new GroupModel(); } if ($permissionModel === null) { $permissionModel = new PermissionModel(); } /* @phpstan-ignore-next-line */ $instance = new FlatAuthorization($groupModel, $permissionModel); if ($userModel === null) { $userModel = new UserModel(); } /* @phpstan-ignore-next-line */ return $instance->setUserModel($userModel); } public static function breadcrumb(bool $getShared = true): Breadcrumb { if ($getShared) { return self::getSharedInstance('breadcrumb'); } return new Breadcrumb(); } public static function vite(bool $getShared = true): Vite { if ($getShared) { return self::getSharedInstance('vite'); } return new Vite(); } }