Parsování a skládání URL
Třída Nette\Http\Url zapouzdřuje jakéhokoliv URL dle RFC 3986 a umožňuje jednoduchou manipulaci s jeho částmi
Jednotlivé části URL zachycuje tento obrázek:
scheme user password host port basePath relativeUrl
| | | | | | |
/--\ /--\ /------\ /-------\ /--\/--\/----------------------------\
http://john:x0y17575@nette.org:8042/en/manual.php?name=param#fragment
\__________________________/\____________/^\________/^\______/
| | | |
authority path query fragment
Použití je pak intuitivní:
use Nette\Http\Url;
$url = new Url('http://nette.org/cs/dokumentace?action=history#footer');
echo $url->absoluteUrl; // nebo přímo echo $url; vrací celou vstupní URL
echo $url->scheme; // http
echo $url->authority; // nette.org
echo $url->hostUrl; // http://nette.org
echo $url->path; // /cs/dokumentace
echo $url->query; // action=history
echo $url->fragment; // footer
Kromě URL schématu http
je možné používat i další, například https
, file
nebo
ftp
.
Části URL lze pochopitelně i měnit.
$url = new Url('http://nette.org/cs/dokumentace?action=history#footer');
$url->path = '/';
$url->appendQuery('page=1');
echo $url; // http://nette.org/?action=history&page=1#footer
Metoda canonicalize() převede URL na kanonickou formu.
Nette\Http\UrlScript
Třída UrlScript je potomkem Url
,
která navíc indikuje, kterou část URL tvoří cesta k aktuálně spuštěnému skriptu. Používá se uvnitř třídy Nette\Http\Request.
http://nette.org/admin/script.php/pathinfo/?name=param#fragment
\_______________/\________/
| |
scriptPath pathInfo