Overview

Packages

  • PHP
  • Router

Classes

  • Route
  • Router
  • RouterForIncludes
  • SimpleRoute
  • Overview
  • Package
  • Class
  • Tree

Class Router

Rozšířená verze. Hlavní změny:

  • zjednodušené generování URL, které se liší jen hodnotou jediného parametru
  • umožněny nepovinné části routy
  • možnost vynechání části URL před zpracováním, doplnění prefixu do výstupní adresy
  • automatické přesměrování z nepoužívaných URL na nové
  • předá řízení libovolnému callbacku (funkce nebo třída+metoda; nadefinuje se jen přibližně, hodnoty se doplní z URL)
Router implements ArrayAccess

Direct known subclasses

RouterForIncludes
Package: Router
Author: Jakub Kulhan (původní verze), http://bukaj.netuje.cz/blog/jednoduchy-routing-v-php
Author: Viktorie Halasů (rozšíření), http://projekty.vize.name/router/
Version: 1.3
Located at Router.php
Methods summary
public
# __construct( array $defaults = array() )

Konstruktor

Konstruktor

Parameters

$defaults
array
Výchozí parametry pro celý router.
final public Router
# addRoute( string $route, array $defaults = array(), integer $flags = 0, array $redir = null )

Parsuje a přidá další routu.

Parsuje a přidá další routu.

Parameters

$route
string
$defaults
array
Pole výchozích hodnot.
$flags
integer
Modifikátory routy (bitmask). FIXED | CI | REDIR
$redir
array
Pokud se přesměrovávají nepoužívané URL na nové (flag REDIR), musí obsahovat buď pole hodnot pro vytvoření nové URL, anebo callback, který toto pole vrací.

Returns

Router
(fluent interface)

Throws

InvalidArgumentException
Pokud je nastavený flag REDIR, ale chybí údaj, kam se má přesměrovávat.

See

Route::__construct()
final public Router
# prepareUrlTemplate( string $tplName, array $params, mixed $queryString = '', string $fragment = '' )

Připraví URL jako pojmenovanou šablonu (= jedna hodnota se bude dynamicky doplňovat, ostatní zůstanou stejné).

Připraví URL jako pojmenovanou šablonu (= jedna hodnota se bude dynamicky doplňovat, ostatní zůstanou stejné).

Parameters

$tplName
string
$name Jméno šablony
$params
array
Parametry pro vytvoření URL. Variabilní parametr musí mít jako hodnotu konstantu Router::PREPARE. Pokud se pro tuto část routy používá vlastní regulár, je potřeba ke konstantě připojit i řetězec, který tomuto reguláru odpovídá.
$queryString
mixed
$query_string Query string (volitelně). Buď hotový řetězec, nebo pole [název]=>hodnota.
$fragment
string
Kotva.

Returns

Router
(fluent interface)

Throws

InvalidArgumentException
Pokud požadované jméno už existuje nebo zadané parametry neodpovídají žádné routě nebo zadané jméno není řetězec.
UnexpectedValueException
Pokud nebyla určená variabilní část.
final public string
# urlFromTemplate( string $tplName, string $value )

Vytvoří hotovou URL podle pojmenované šablony

Vytvoří hotovou URL podle pojmenované šablony

Parameters

$tplName
string
Jméno šablony
$value
string
Řetězec, který se má doplnit

Returns

string
URL

Throws

InvalidArgumentException
Pokud neexistuje polotovar s tímto jménem, nebo zadaná hodnota není řetězec/číslo.
final public string
# url( array $params, string|array $queryString = '', string $fragment = '' )

Podle zadaných parametrů složí URL.

Podle zadaných parametrů složí URL.

Parameters

$params
array
Parametry. Musí být uvedeny i výchozí hodnoty (2.param addRoute), nepovinné části routy lze vynechat.
$queryString
string|array
Buď hotový řetězec, nebo pole [název]=>hodnota.
$fragment
string
Kotva

Returns

string
final protected string
# createQueryString( string|array $params )

Zpracuje dodatečné parametry do URL (query string), neescapuje, otazník nepřidává.
Vyhodí parametr, ve kterém je routa z mod_rewrite.

Zpracuje dodatečné parametry do URL (query string), neescapuje, otazník nepřidává. Vyhodí parametr, ve kterém je routa z mod_rewrite.

Parameters

$params
string|array
Může být pole parametrů i hotový query string.

Returns

string
final protected string
# insertParamsToUrl( string $url, string $queryString )

Vloží do URL další parametry.

Vloží do URL další parametry.

Parameters

$url
string
$queryString
string

Returns

string
final public array
# parseUrl( string $url )

Rozebere URL na parametry podle první vyhovující routy a vrátí výsledek. Pokud zadaná URL neodpovídá žádné routě, vyvolá varování a nastaví výchozí hodnoty.

Rozebere URL na parametry podle první vyhovující routy a vrátí výsledek. Pokud zadaná URL neodpovídá žádné routě, vyvolá varování a nastaví výchozí hodnoty.

Parameters

$url
string

Returns

array

Throws

UnexpectedValueException
Pokud je tato routa přesměrovávaná a cíl je špatně zadaný.
final protected
# setDefaultParams( )

Nastaví výchozí požadavek (podle hodnoty callbacku).

Nastaví výchozí požadavek (podle hodnoty callbacku).

final public Router
# setCallbackMask( string $mask )

Nastaví masku pro callback. Tam, kde se má doplnit parametr z URL, napište jeho jméno v ostrých závorkách. Lze zadat jak funkci: "<func>", tak třídu + metodu: "<controller>Controller:<action>". Více hodnot oddělte čárkou.

Nastaví masku pro callback. Tam, kde se má doplnit parametr z URL, napište jeho jméno v ostrých závorkách. Lze zadat jak funkci: "<func>", tak třídu + metodu: "<controller>Controller:<action>". Více hodnot oddělte čárkou.

Parameters

$mask
string

Returns

Router
(fluent interface)

Throws

InvalidArgumentException
Pokud vstup není řetězec.
final public Router
# setErrorCallback( string $callback )

Nastaví callback, který se má použít v případě chyby (neexistující třídy/metody apod.) Syntax stejná jako pro setCallbackMask, ale bez doplňovaných hodnot.

Nastaví callback, který se má použít v případě chyby (neexistující třídy/metody apod.) Syntax stejná jako pro setCallbackMask, ale bez doplňovaných hodnot.

Parameters

$callback
string

Returns

Router
(fluent interface)

Throws

InvalidArgumentException
Pokud vstup není řetězec.
final protected
# resolveCallbackName( )

Vytvoří callback pro metodu delegate (z parametrů z URL podle zadané masky).

Vytvoří callback pro metodu delegate (z parametrů z URL podle zadané masky).

Throws

RuntimeException
Pokud jsou v callbacku požadované parametry, které v routě chybí.
protected array
# callbackFromString( string $str )

Vytvoří spustitelné callbacky z řetězce. Pokud se jméno třídy opakuje, použije jen jedinou instanci.

Vytvoří spustitelné callbacky z řetězce. Pokud se jméno třídy opakuje, použije jen jedinou instanci.

Parameters

$str
string

Returns

array

Throws

BadFunctionCallException
Pokud callback neexistuje.
public
# delegate( )

Předá řízení. Nastavené metody/funkce dostanou parametry z rozebrané URL.

Předá řízení. Nastavené metody/funkce dostanou parametry z rozebrané URL.

Throws

BadFunctionCallException
Pokud callback neexistuje.
protected
# redirect( string $newUrl, integer $code = 301 )

Přesměruje na zadanou URL.

Přesměruje na zadanou URL.

Parameters

$newUrl
string
$code
integer
HTTP kód odpovědi, výchozí hodnota odpovídá stavu "Moved Permanently".
final public boolean
# templateExists( string $tplName )

Zjistí, jestli už existuje šablona URL s tímto jménem.

Zjistí, jestli už existuje šablona URL s tímto jménem.

Parameters

$tplName
string
Název

Returns

boolean
protected
# setBaseUrl( )

Zjistí základní URL aplikace (bez koncového lomítka)

Zjistí základní URL aplikace (bez koncového lomítka)

final public Router
# setIgnoredUrlPart( string $part )

Nastaví část, která se má ve všech vstupních URL ignorovat.

Nastaví část, která se má ve všech vstupních URL ignorovat.

Parameters

$part
string

Returns

Router
(fluent interface)

Throws

InvalidArgumentException
Pokud vstup není řetězec.
final public Router
# setOutputUrlPrefix( string $prefix )

Nastaví prefix pro všechny výstupní URL.

Nastaví prefix pro všechny výstupní URL.

Parameters

$prefix
string

Returns

Router
(fluent interface)

Throws

InvalidArgumentException
Pokud vstup není řetězec.
final public Router
# setRouteKey( string $param )

Nastaví název parametru $_GET, do kterého se v .htaccess ukládá požadovaná URL. Výchozí hodnota je "route".

Nastaví název parametru $_GET, do kterého se v .htaccess ukládá požadovaná URL. Výchozí hodnota je "route".

Parameters

$param
string

Returns

Router
(fluent interface)

Throws

InvalidArgumentException
Pokud vstup není řetězec.
final public string
# getBaseUrl( )

Vrací základní adresu aplikace (bez koncového lomítka)

Vrací základní adresu aplikace (bez koncového lomítka)

Returns

string
final public string
# getCurrentUrl( )

Vrací URL aktuálního požadavku (bez koncového lomítka)

Vrací URL aktuálního požadavku (bez koncového lomítka)

Returns

string
final public array
# getParams( )

Vrátí rozebranou URL.

Vrátí rozebranou URL.

Returns

array
public mixed
# __get( string $propertyName )

Getter

Getter

Parameters

$propertyName
string

Returns

mixed
final public
# __set( string $propertyName, string $propertyValue )

Setter není povolen.

Setter není povolen.

Parameters

$propertyName
string
$propertyValue
string
public
# offsetSet( $offset, $value )

See

ArrayAccess::offsetSet()

Implementation of

ArrayAccess::offsetSet
public
# offsetExists( $offset )

See

ArrayAccess::offsetExists()

Implementation of

ArrayAccess::offsetExists
public
# offsetUnset( $offset )

Odstranění rout není povoleno.

Odstranění rout není povoleno.

See

ArrayAccess::offsetUnset()

Implementation of

ArrayAccess::offsetUnset
public
# offsetGet( $offset )

See

ArrayAccess::offsetGet()

Implementation of

ArrayAccess::offsetGet
Constants summary
string COPY_OLD_VALUE '@@copy'
#

Pro přesměrování, do tohoto parametru se má zkopírovat hodnota ze staré URL.

Pro přesměrování, do tohoto parametru se má zkopírovat hodnota ze staré URL.

string PREPARE "\032"
#

Určuje, že tato část výstupní adresy se bude dynamicky dosazovat (polotovar).

Určuje, že tato část výstupní adresy se bude dynamicky dosazovat (polotovar).

Properties summary
protected string $urlRouteKey 'route'
#

Název klíče v poli $_GET, do kterého se v .htaccess ukládá URL (nepovinné).

Název klíče v poli $_GET, do kterého se v .htaccess ukládá URL (nepovinné).

protected string $baseUrl ''
#

Základ URL.

Základ URL.

protected string $ignoredUrlPart ''
#

Část vstupní URL, která má být odstraněna před hledáním vhodné routy.

Část vstupní URL, která má být odstraněna před hledáním vhodné routy.

protected string $outputUrlPrefix ''
#

Řetězec, který se má přidat před každou výstupní URL.

Řetězec, který se má přidat před každou výstupní URL.

protected string $currentUrl ''
#

Aktuální URL (to, co bylo předané metodě parseURL).

Aktuální URL (to, co bylo předané metodě parseURL).

protected array $params array()
#

Parametry z rozebrané URL.

Parametry z rozebrané URL.

protected array $defaultParams array()
#

Výchozí hodnoty parametrů, pokud bude URL prázdná.

Výchozí hodnoty parametrů, pokud bude URL prázdná.

protected array $routes array()
#

Parsované routy.

Parsované routy.

protected array $urlTemplates array()
#

Připravené šablony URL.

Připravené šablony URL.

protected string $callbackMask ''
#

Maska pro jméno kontroleru / metody / funkce, kterou bude volat metoda delegate.

Maska pro jméno kontroleru / metody / funkce, kterou bude volat metoda delegate.

protected string $callback ''
#

Přeložené jméno callbacku.

Přeložené jméno callbacku.

protected string $errorCallback ''
#

Callback pro případ chyby (neexistující metoda/třída/funkce).

Callback pro případ chyby (neexistující metoda/třída/funkce).

PHP Router ver.1.3, r02 API documentation generated by ApiGen 2.6.1