Jet\MVC_Router

Již víte co je router a jaká je jeho role. Teď se podrobně podíváme jaké informace poskytuje. Tedy na metody třídy Jet\MVC_Router a také rozhraní Jet\MVC_Router_Intervace

Třída je instancována zásadně pomocí továrny

Základní metody

Metoda Význam
public resolve(
string $request_URL
): void
Provede vyhodnocovací proces. Tedy na základě URL najde pŕíslušnou bázi, lokalizaci a stránku a také stránku požádá o dokončení vyhodnocení. To znamená, že se zde budou budou volat i resolvery kontrolerů obsahu. To v praxi znamená například vyhodnocení zbytku URL, který router nezachytil (část URL již nepatří žádné stránce) a který může patřit např. článku, konkrétnímu zboží na e-shopu a podobně.
public getSetSystemLocale(
): bool
Indikuje zda má router ihned po zjištění lokalizace nastavit tuto lokalizaci třídě Locale - tedy aktuální systémovou lokalizaci. 
Nastavení systémové lokalizace může být důležité pro proces vyhodnocení. Proto toto nastavení může provést router ihned.

Výchozí stav: true
public setSetSystemLocale(
bool $set_system_locale
): void
Nastavuje zda ihned nastavovat / nenastavovat zjištěnou lokalizaci třídě Locale - tedy aktuální systémovou lokalizaci.
public getSetTranslatorLocale(
): bool
Indikuje zda má router ihned po zjištění lokalizace nastavit tuto lokalizaci překladači - třídě Translator.
Nastavení lokalizace překladače může být důležité pro proces vyhodnocení. Proto toto nastavení může provést router ihned.

Výchozí stav: true
public setSetTranslatorLocale(
bool $set_translator_locale
): void
Nastavuje zda ihned nastavovat / nenastavovat zjištěnou lokalizaci překladači - třídě Translator.

Metody pro zjištění vyhodnoceného stavu

Metoda Význam
public getIs404(
): bool
Indikuje zda byla URL vyhodnocena jako neexistující stránka.
public getIsRedirect(
): bool
Indikuje zda je požadováno přesměrování na jinou URL.
public getRedirectTargetURL(
): string
Pokud je požadováno přesměrování, pak vrací cílovou URL.
public getRedirectType(
): int
Pokud je požadováno přesměrování, pak vrací jeho typ - http kód.
public getLoginRequired(
): bool
Indikuje zda je požadováno přihlášení uživatele (stránka je tajná a uživatel není přihlášen).
public getAccessNotAllowed(
): bool
Indikuje že uživatel je sice přihlášen, ale nemá oprávnění stránku prohlížet / používat.
public getUrlPath(
): string
Příklad: URL požadavku je: https://domain/path-a/path-b/

Pak tato metoda vrátí /path-a/path-b/
public getUsedUrlPath(
): string
Vrátí cestu z URL o které byl router již informován jako o použité (viz metoda setUsedUrlPath)
public getHasUnusedUrlPath(
): bool
Indikuje zda má router stále nějakou nezpracovanou (a nepoužitou) část URL cesty.
public getValidUrl(
): string
Vrací URL, která by měla být platná (neobsahuje nepoužité části, má výchozí URL báze a tak dále)
public getBase(
): ?MVC_Base_Interface
Vrátí instanci nalezené báze
public getLocale(
): ?Locale
Vrátí instanci nalezené lokalizace.
public getPage(
): ?MVC_Page_Interface
Vrátí instanci nalezené stránky.

Metody používané při resolv procesu

Jak již víte, tak router sice určí bázi, lokalizaci a stránku, ale dále nechá stránku (a hlavně její obsah) celou situaci dovyhodnotit. A proto tedy router musí mít metody, pomocí kterých dostane z vyhodnocovacího procesu zpětnou vazbu.

Metoda Význam
public setIs404(
): void
Nastavuje že se jedná o požadavek na neexistující stránku.
public setUsedUrlPath
string $used_path 
): void
Důležitá metoda!

Poku vaše aplikace zpracovává části URL, tak musí routeru dát vědět, že danou část URL opravdu použila a že se tedy již nejedná o nic neznámého.

Pokud to vaše aplikace neuděláte, tak router bude považovat onu část URL za balast a ve finále nastaví přesměrování na poslední známou platnou URL.
public setIsRedirect(
string $target_URL,
int $http_code
=
Http_Headers::CODE_302_MOVED_TEMPORARY
)
Nastavuje že je požadováno přesměrování a předává parametry přesměrování (na jakou URL, s jakým http kódem).
public setAccessNotAllowed(
): void
Nastavuje že uživatel nemá na stránku přístup z důvodu nedostatečných práv.

public setLoginRequired(
): void
Nastavuje že bude požadováno přihlášení (stránka je tajná, ale uživatel není přihlášen)

Předchozí kapitola
Router
Další kapitola
Jet\MVC