.------------------------------------------------------------------.
| NUL + . / ; ? & # |
|------------------------------------------------------------------|
| first | "" "" "." "/" ";" "?" "&" "#" |
| sep | "," "," "." "/" ";" "&" "&" "," |
| named | false false false false true true true false |
| ifemp | "" "" "" "" "" "=" "=" "" |
| allow | U U+R U U U U U U+R |
`------------------------------------------------------------------'
named = false
| 1 | {/list} /red,green,blue | {$value}(?:,{$value}+)
| 2 | {/list} /red/green/blue | {$value}+(?:{$sep}{$value}+)
| 3 | {/keys} /semi,%3B,dot,.,comma,%2C | /(\w+,?)+
| 4 | {/keys} /semi=%3B/dot=./comma=%2C | /(?:\w+=\w+/?)
named = true
| 1 | {?list} ?list=red,green,blue | {name}=(?:\w+(?:,\w+?))
| 2 | {?list} ?list=red&list=green&list=blue | {name}+=(?:{$value}+(?:{sep}{name}+={$value}))
| 3 | {?keys} ?keys=semi,%3B,dot,.,comma,%2C | (same as 1)
| 4 | {?keys} ?semi=%3B&dot=.&comma=%2C | (same as 2)
UNRESERVED
RFC 1738 ALPHA | DIGIT | "-" | "." | "" | | "$" | "+" | "!" | "*" | "'" | "(" | ")" | ","
RFC 3986 ALPHA | DIGIT | "-" | "." | "" | "~"
RFC 6570 ALPHA | DIGIT | "-" | "." | "_" | "~"
RESERVED
RFC 1738 ":" | "/" | "?" | | "@" | "!" | "$" | "&" | "'" | "(" | ")" | "" | "+" | "," | ";" | "=" | "-" | "_" | "." |
RFC 3986 ":" | "/" | "?" | "#" | "[" | "]" | "@" | "!" | "$" | "&" | "'" | "(" | ")" | "" | "+" | "," | ";" | "="
RFC 6570 ":" | "/" | "?" | "#" | "[" | "]" | "@" | "!" | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "="
PHP_QUERY_RFC3986 was added in PHP 5.4.0
Properties |
public $empty |
public $first |
public
$id
start - Variable offset position, level-2 operators start at 1
first - If variables found, prepend this value to it |
public $named |
public $reserved |
public
static
$reserved_chars
=
[
'%3A'
=>
':'
,
'%2F'
=>
'/'
,
'%3F'
=>
'?'
,
'%23'
=>
'#'
,
'%5B'
=>
'['
,
'%5D'
=>
']'
,
'%40'
=>
'@'
,
'%21'
=>
'!'
,
'%24'
=>
'$'
,
'%26'
=>
'&'
,
'%27'
=>
'''
,
'%28'
=>
'('
,
'%29'
=>
')'
,
'%2A'
=>
'*'
,
'%2B'
=>
'+'
,
'%2C'
=>
','
,
'%3B'
=>
';'
,
'%3D'
=>
'='
]
gen-delims | sub-delims |
public $sep |
public $start |
Methods |
public __construct ( $id , $named , $sep , $empty , $reserved , $start , $first ) |
public static createById ( $id ) |
public
decode
(
Rize\UriTemplate\Parser
$parser
,
Rize\UriTemplate\Node\Variable
$var
,
$values
) Decodes variable
|
public
encode
(
Rize\UriTemplate\Parser
$parser
,
Rize\UriTemplate\Node\Variable
$var
,
$values
) Encodes variable according to spec (reserved or unreserved)
|
public expand ( Rize\UriTemplate\Parser $parser , Rize\UriTemplate\Node\Variable $var , array $params = [ ] ) |
public
expandExplode
(
Rize\UriTemplate\Parser
$parser
,
Rize\UriTemplate\Node\Variable
$var
,
array
$val
) Explode modifier '*', '%'
|
public
expandNonExplode
(
Rize\UriTemplate\Parser
$parser
,
Rize\UriTemplate\Node\Variable
$var
,
array
$val
) Non explode modifier ':'
|
public expandString ( Rize\UriTemplate\Parser $parser , Rize\UriTemplate\Node\Variable $var , $val ) |
public
extract
(
Rize\UriTemplate\Parser
$parser
,
Rize\UriTemplate\Node\Variable
$var
,
$data
) Extracts value from variable
|
public static isValid ( $id ) |
public abstract toRegex ( Rize\UriTemplate\Parser $parser , Rize\UriTemplate\Node\Variable $var ) |
Properties |
protected static $loaded |
protected
static
$pathRegex
=
'(?:[a-zA-Z0-9\-\._~!\$&'\(\)\*\+,;=%:@]+|%(?![A-Fa-f0-9]{2}))'
RFC 3986 Allowed path characters regex except the path delimiter '/'.
|
protected
static
$queryRegex
=
'(?:[a-zA-Z0-9\-\._~!\$'\(\)\*\+,;=%:@\/\?]+|%(?![A-Fa-f0-9]{2}))'
RFC 3986 Allowed query characters regex except the query parameter delimiter '&'.
|
protected static $types = [ '' => [ 'sep' => ',' , 'named' => false , 'empty' => '' , 'reserved' => false , 'start' => 0 , 'first' => NULL ] , '+' => [ 'sep' => ',' , 'named' => false , 'empty' => '' , 'reserved' => true , 'start' => 1 , 'first' => NULL ] , '.' => [ 'sep' => '.' , 'named' => false , 'empty' => '' , 'reserved' => false , 'start' => 1 , 'first' => '.' ] , '/' => [ 'sep' => '/' , 'named' => false , 'empty' => '' , 'reserved' => false , 'start' => 1 , 'first' => '/' ] , ';' => [ 'sep' => ';' , 'named' => true , 'empty' => '' , 'reserved' => false , 'start' => 1 , 'first' => ';' ] , '?' => [ 'sep' => '&' , 'named' => true , 'empty' => '=' , 'reserved' => false , 'start' => 1 , 'first' => '?' ] , '&' => [ 'sep' => '&' , 'named' => true , 'empty' => '=' , 'reserved' => false , 'start' => 1 , 'first' => '&' ] , '#' => [ 'sep' => ',' , 'named' => false , 'empty' => '' , 'reserved' => true , 'start' => 1 , 'first' => '#' ] ] |
Methods |
protected
getRegex
() Returns the correct regex given the variable location in the URI
|
Properties |
protected static $loaded |
protected
static
$pathRegex
=
'(?:[a-zA-Z0-9\-\._~!\$&'\(\)\*\+,;=%:@]+|%(?![A-Fa-f0-9]{2}))'
RFC 3986 Allowed path characters regex except the path delimiter '/'.
|
protected
static
$queryRegex
=
'(?:[a-zA-Z0-9\-\._~!\$'\(\)\*\+,;=%:@\/\?]+|%(?![A-Fa-f0-9]{2}))'
RFC 3986 Allowed query characters regex except the query parameter delimiter '&'.
|
public
static
$reserved_chars
=
[
'%3A'
=>
':'
,
'%2F'
=>
'/'
,
'%3F'
=>
'?'
,
'%23'
=>
'#'
,
'%5B'
=>
'['
,
'%5D'
=>
']'
,
'%40'
=>
'@'
,
'%21'
=>
'!'
,
'%24'
=>
'$'
,
'%26'
=>
'&'
,
'%27'
=>
'''
,
'%28'
=>
'('
,
'%29'
=>
')'
,
'%2A'
=>
'*'
,
'%2B'
=>
'+'
,
'%2C'
=>
','
,
'%3B'
=>
';'
,
'%3D'
=>
'='
]
gen-delims | sub-delims |
protected static $types = [ '' => [ 'sep' => ',' , 'named' => false , 'empty' => '' , 'reserved' => false , 'start' => 0 , 'first' => NULL ] , '+' => [ 'sep' => ',' , 'named' => false , 'empty' => '' , 'reserved' => true , 'start' => 1 , 'first' => NULL ] , '.' => [ 'sep' => '.' , 'named' => false , 'empty' => '' , 'reserved' => false , 'start' => 1 , 'first' => '.' ] , '/' => [ 'sep' => '/' , 'named' => false , 'empty' => '' , 'reserved' => false , 'start' => 1 , 'first' => '/' ] , ';' => [ 'sep' => ';' , 'named' => true , 'empty' => '' , 'reserved' => false , 'start' => 1 , 'first' => ';' ] , '?' => [ 'sep' => '&' , 'named' => true , 'empty' => '=' , 'reserved' => false , 'start' => 1 , 'first' => '?' ] , '&' => [ 'sep' => '&' , 'named' => true , 'empty' => '=' , 'reserved' => false , 'start' => 1 , 'first' => '&' ] , '#' => [ 'sep' => ',' , 'named' => false , 'empty' => '' , 'reserved' => true , 'start' => 1 , 'first' => '#' ] ] |
Methods |
public static createById ( $id ) |
public static isValid ( $id ) |