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) |