*/ public function getActiveRedirectForURL($url, $degradedMode = false); /** * @param string $url * @return array */ public function getExistingRedirectForURL($url); /** @return string */ public function deleteSpecifiedRedirects(); // ========================================================================= // Redirect conditions (from DataAccessTrait_Redirects) // ========================================================================= /** * @param int $redirectId * @return array> */ public function getRedirectConditions(int $redirectId): array; /** * @param int $redirectId * @param array> $conditions * @return void */ public function saveRedirectConditions(int $redirectId, array $conditions): void; // ========================================================================= // Redirect updates (from DataAccessTrait_Stats) // ========================================================================= /** * @param string $type * @param string $dest * @param string $fromURL * @param int $idForUpdate * @param string $redirectCode * @param string $statusType * @param int|null $startTs * @param int|null $endTs * @return string */ public function updateRedirect($type, $dest, $fromURL, $idForUpdate, $redirectCode, $statusType, $startTs = null, $endTs = null); /** * @param array $ids * @return array> */ public function getRedirectsByIDs($ids); /** * @param int $id * @param string $newstatus * @return string */ public function updateRedirectTypeStatus($id, $newstatus); /** * @param int $id * @param int $trash * @return string */ public function moveRedirectsToTrash($id, $trash); // ========================================================================= // Cron maintenance (from DataAccessTrait_Redirects) // ========================================================================= /** @return int */ public function cleanupOrphanedAutoRedirects(): int; /** @return string */ public function deleteOldRedirectsCron(); /** @return int */ public function removeDuplicatesCron(): int; /** @return bool */ public function limitDebugFileSize(): bool; /** * @param array $options * @return int */ public function autoTrashJunkCapturedUrls(array $options): int; // ========================================================================= // Redirect maintenance (from DataAccessTrait_Maintenance, Phase 5) // ========================================================================= /** * Flag redirects whose destination URL appears in the 404 log as a recent 404. * * @return void */ public function flagDeadDestinationRedirects(): void; /** * Move auto-created redirects to trash if they are older than the configured expiration. * * @return int Number of redirects moved to trash */ public function expireOldAutoRedirects(): int; // ========================================================================= // Regex cache (from DataAccess static state) // ========================================================================= /** @return void */ public function clearRegexRedirectsCache(): void; // ========================================================================= // Static utilities (from DataAccessTrait_Redirects) // ========================================================================= /** * @param mixed $url * @return string */ public static function computeRedirectsCanonicalUrl($url): string; /** * @param string $columnExpr * @return string */ public static function hitsCanonicalUrlSqlExpression(string $columnExpr): string; }