RedirectService

Read onlyYes

Creates a proper URL to redirect from a matched redirect of a request

Internal

due to some possible refactorings

Table of Contents

Methods

__construct()  : mixed
getTargetUrl()  : UriInterface|null
matchRedirect()  : array<string|int, mixed>|null
Checks against all available redirects "flat" or "regexp", and against starttime/endtime
addQueryParams()  : Uri
Adds query parameters to a Uri object
bootFrontendController()  : ContentObjectRenderer
Finishing booting up, after that the following properties are available.
fetchRedirects()  : array<string|int, mixed>
Fetches all redirects from cache, with fallback to rebuild cache from the DB if caches was empty, grouped by the domain does NOT take starttime/endtime into account, as it is cached.
getFirstActiveRedirectFromPossibleRedirects()  : array<string|int, mixed>|null
Checks all possible redirects and return the first possible and active redirect if available.
getUriFromCustomLinkDetails()  : UriInterface|null
Called when TypoScriptis available, so typolink is used to generate the URL
isRedirectActive()  : bool
Check if a redirect record matches the starttime and endtime and disable restrictions
replaceRegExpCaptureGroup()  : array<string|int, mixed>
resolveLinkDetailsFromLinkTarget()  : array<string|int, mixed>
Check if the current request is actually a redirect, and then process the redirect.
resolveSite()  : SiteInterface|null
If no site is given, try to find a valid site for the target page

Methods

__construct()

public __construct(RedirectCacheService $redirectCacheService, LinkService $linkService, SiteFinder $siteFinder, EventDispatcherInterface $eventDispatcher, PageInformationFactory $pageInformationFactory, FrontendTypoScriptFactory $frontendTypoScriptFactory, PhpFrontend $typoScriptCache, LoggerInterface $logger, TypoLinkCodecService $typoLinkCodecService) : mixed
Parameters
$redirectCacheService : RedirectCacheService
$linkService : LinkService
$siteFinder : SiteFinder
$eventDispatcher : EventDispatcherInterface
$pageInformationFactory : PageInformationFactory
$frontendTypoScriptFactory : FrontendTypoScriptFactory
$typoScriptCache : PhpFrontend
$logger : LoggerInterface
$typoLinkCodecService : TypoLinkCodecService

getTargetUrl()

public getTargetUrl(array<string|int, mixed> $matchedRedirect, ServerRequestInterface $request) : UriInterface|null
Parameters
$matchedRedirect : array<string|int, mixed>
$request : ServerRequestInterface
Return values
UriInterface|null

matchRedirect()

Checks against all available redirects "flat" or "regexp", and against starttime/endtime

public matchRedirect(string $domain, string $path[, string $query = '' ]) : array<string|int, mixed>|null
Parameters
$domain : string
$path : string
$query : string = ''
Return values
array<string|int, mixed>|null

addQueryParams()

Adds query parameters to a Uri object

protected addQueryParams(array<string|int, mixed> $queryParams, Uri $url) : Uri
Parameters
$queryParams : array<string|int, mixed>
$url : Uri
Return values
Uri

bootFrontendController()

Finishing booting up, after that the following properties are available.

protected bootFrontendController(SiteInterface $site, array<string|int, mixed> $queryParams, ServerRequestInterface $originalRequest) : ContentObjectRenderer

Instantiating is done by the middleware stack (see Configuration/RequestMiddlewares.php) so a link to a page can be generated.

Parameters
$site : SiteInterface
$queryParams : array<string|int, mixed>
$originalRequest : ServerRequestInterface
Tags
todo:

This messes quite a bit with dependencies here. RedirectService is called by an early middleware before state has been set up at all. The code thus has to hop through various loops later middlewares would usually do.

Return values
ContentObjectRenderer

fetchRedirects()

Fetches all redirects from cache, with fallback to rebuild cache from the DB if caches was empty, grouped by the domain does NOT take starttime/endtime into account, as it is cached.

protected fetchRedirects(string $sourceHost) : array<string|int, mixed>
Parameters
$sourceHost : string
Return values
array<string|int, mixed>

getFirstActiveRedirectFromPossibleRedirects()

Checks all possible redirects and return the first possible and active redirect if available.

protected getFirstActiveRedirectFromPossibleRedirects(array<string|int, mixed> $possibleRedirects) : array<string|int, mixed>|null
Parameters
$possibleRedirects : array<string|int, mixed>
Return values
array<string|int, mixed>|null

getUriFromCustomLinkDetails()

Called when TypoScriptis available, so typolink is used to generate the URL

protected getUriFromCustomLinkDetails(array<string|int, mixed> $redirectRecord, SiteInterface|null $site, array<string|int, mixed> $linkDetails, array<string|int, mixed> $queryParams, ServerRequestInterface $originalRequest) : UriInterface|null
Parameters
$redirectRecord : array<string|int, mixed>
$site : SiteInterface|null
$linkDetails : array<string|int, mixed>
$queryParams : array<string|int, mixed>
$originalRequest : ServerRequestInterface
Return values
UriInterface|null

isRedirectActive()

Check if a redirect record matches the starttime and endtime and disable restrictions

protected isRedirectActive(array<string|int, mixed> $redirectRecord) : bool
Parameters
$redirectRecord : array<string|int, mixed>
Return values
bool

whether the redirect is active and should be used for redirecting the current request

replaceRegExpCaptureGroup()

protected replaceRegExpCaptureGroup(array<string|int, mixed> $matchedRedirect, UriInterface $uri, array<string|int, mixed> $linkDetails) : array<string|int, mixed>
Parameters
$matchedRedirect : array<string|int, mixed>
$uri : UriInterface
$linkDetails : array<string|int, mixed>
Return values
array<string|int, mixed>

resolveLinkDetailsFromLinkTarget()

Check if the current request is actually a redirect, and then process the redirect.

protected resolveLinkDetailsFromLinkTarget(string $redirectTarget) : array<string|int, mixed>
Parameters
$redirectTarget : string
Return values
array<string|int, mixed>

the link details from the linkService


        
On this page

Search results