diff --git a/http/cs/urls.texy b/http/cs/urls.texy index 1836bb2a8e..52f7b1850d 100644 --- a/http/cs/urls.texy +++ b/http/cs/urls.texy @@ -44,6 +44,17 @@ $url = new Url( ); ``` +Třída `Url` implementuje rozhraní `JsonSerializable` a má metodu `__toString()`, takže objekt lze vypsat nebo použít v datech předávaných do `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +Komponenty URL +-------------- + Pro vrácení nebo změnu jednotlivých komponent URL jsou vám k dispozici tyto metody: .[language-php] @@ -72,7 +83,10 @@ Můžeme pracovat i s jednotlivými query parametry pomocí: | `setQuery(string\|array $query)` | `getQueryParameters(): array` | `setQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` vrací pravou či levou část hostitele. Takto funguje, pokud host je `www.nette.org`: + +getDomain(int $level = 2): string .[method] +------------------------------------------- +Vrací pravou či levou část hostitele. Takto funguje, pokud host je `www.nette.org`: .[language-php] | `getDomain(1)` | `'org'` @@ -84,27 +98,28 @@ Metoda `getDomain(int $level = 2)` vrací pravou či levou část hostitele. Tak | `getDomain(-3)` | `''` -Třída `Url` implementuje rozhraní `JsonSerializable` a má metodu `__toString()`, takže objekt lze vypsat nebo použít v datech předávaných do `json_encode()`. - -```php -echo $url; -echo json_encode([$url]); -``` - -Metoda `isEqual(string|Url $anotherUrl): bool` ověří, zda jsou dvě URL shodné. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Ověří, zda jsou dvě URL shodné. ```php $url->isEqual('https://nette.org'); ``` -Statická metoda `isAbsolute(string $url): bool` ověřuje, zda je URL absolutní. URL je považována za absolutní, pokud začíná schématem (např. http, https, ftp) následovaným dvojtečkou. + +Url::isAbsolute(string $url): bool .[method] +--------------------------------------------- +Ověřuje, zda je URL absolutní. URL je považována za absolutní, pokud začíná schématem (např. http, https, ftp) následovaným dvojtečkou. ```php Url::isAbsolute('https://nette.org'); // true Url::isAbsolute('//nette.org'); // false ``` -Statická metoda `removeDotSegments(string $path): string` normalizuje cestu v URL odstraněním speciálních segmentů `.` a `..`. Metoda zpracovává relativní odkazy a odstraňuje nadbytečné prvky cesty stejným způsobem, jako to dělají webové prohlížeče. + +Url::removeDotSegments(string $path): string .[method] +------------------------------------------------------ +Normalizuje cestu v URL odstraněním speciálních segmentů `.` a `..`. Metoda zpracovává relativní odkazy a odstraňuje nadbytečné prvky cesty stejným způsobem, jako to dělají webové prohlížeče. ```php Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt' @@ -133,6 +148,17 @@ $newUrl = $url echo $newUrl; // 'http://nette.org:8080/cs/?name=param#footer' ``` +Třída `UrlImmutable` implementuje rozhraní `JsonSerializable` a má metodu `__toString()`, takže objekt lze vypsat nebo použít v datech předávaných do `json_encode()`. + +```php +echo $url; +echo json_encode([$url]); +``` + + +Komponenty URL +-------------- + Pro vrácení nebo změnu jednotlivých komponent URL slouží metody: .[language-php] @@ -151,6 +177,8 @@ Pro vrácení nebo změnu jednotlivých komponent URL slouží metody: | | `getHostUrl(): string` | `'http://nette.org:8080'` | | `getAbsoluteUrl(): string` | celá URL +Metoda `withoutUserInfo()` odstraňuje `user` a `password`. + Můžeme pracovat i s jednotlivými query parametry pomocí: .[language-php] @@ -159,9 +187,15 @@ Můžeme pracovat i s jednotlivými query parametry pomocí: | `withQuery(string\|array $query)` | `getQueryParameters(): array` | `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)` -Metoda `getDomain(int $level = 2)` funguje stejně, jako její jmenovkyně ze třídy `Url`. Metoda `withoutUserInfo()` odstraňuje `user` a `password`. -Metoda `resolve(string $reference): self` odvozuje absolutní URL stejným způsobem, jakým prohlížeč zpracovává odkazy (``) na HTML stránce. Funguje podle následujících pravidel: +getDomain(int $level = 2): string .[method] +------------------------------------------- +Vrací pravou či levou část hostitele. Takto funguje, pokud host je `www.nette.org`: + + +resolve(string $reference): UrlImmutable .[method] +-------------------------------------------------- +Odvozuje absolutní URL stejným způsobem, jakým prohlížeč zpracovává odkazy (``) na HTML stránce. Funguje podle následujících pravidel: - pokud je odkaz absolutní URL (obsahuje schéma), použije se beze změny - pokud odkaz začíná `//`, převezme se pouze schéma z aktuální URL - pokud odkaz začíná `/`, vytvoří se absolutní cesta od kořene domény @@ -174,14 +208,10 @@ echo $url->resolve('/bar'); // 'https://example.com/bar' echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html' ``` -Třída `UrlImmutable` implementuje rozhraní `JsonSerializable` a má metodu `__toString()`, takže objekt lze vypsat nebo použít v datech předávaných do `json_encode()`. - -```php -echo $url; -echo json_encode([$url]); -``` -Metoda `isEqual(string|Url $anotherUrl): bool` ověří, zda jsou dvě URL shodné. +isEqual(string|Url $anotherUrl): bool .[method] +----------------------------------------------- +Ověří, zda jsou dvě URL shodné. UrlScript