0 ? $value : null; } /** * 페이지 번호 상한을 반환합니다. * * 정상 탐색은 `has_more_pages` 와 커서로 열려 있고, 이 값은 임의의 큰 페이지 번호를 * 직접 던지는 남용을 막기 위한 것입니다. * * @param string|null $context 상한을 조정할 확장이 구분에 쓸 컨텍스트 키 * @return int|null 상한 (무제한이면 null) */ public static function maxPage(?string $context = null): ?int { $value = self::setting('max_page', self::FALLBACK_MAX_PAGE); $value = (int) HookManager::applyFilters('core.pagination.filter_max_page', $value, $context); return $value > 0 ? $value : null; } /** * 관리자 환경설정 값을 읽고, 없으면 config 기본값으로 폴백합니다. * * @param string $key pagination 하위 키 * @param int $fallback 둘 다 부재할 때 쓸 값 * @return int 해석된 값 */ private static function setting(string $key, int $fallback): int { $configured = config('g7_settings.core.pagination.'.$key); if ($configured === null || $configured === '') { $configured = config('core.pagination.'.$key, $fallback); } return (int) $configured; } }