Skip to content

Commit e779967

Browse files
committed
nette/http 3.3.2
1 parent a0623a6 commit e779967

File tree

16 files changed

+1337
-201
lines changed

16 files changed

+1337
-201
lines changed

Diff for: http/bg/urls.texy

+84-13
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,18 @@ $url = new Url(
4444
);
4545
```
4646

47-
Следните методи са достъпни за извличане или промяна на отделни компоненти на URL:
47+
Класът `Url` имплементира интерфейса `JsonSerializable` и предоставя метода `__toString()`, което дава възможност за отпечатване на обекта или използването му с `json_encode()`.
48+
49+
```php
50+
echo $url;
51+
echo json_encode([$url]);
52+
```
53+
54+
55+
URL Components .[method]
56+
------------------------
57+
58+
Следните методи са достъпни за получаване или промяна на отделни компоненти на URL:
4859

4960
.[language-php]
5061
| Setter | Getter | Върната стойност
@@ -72,7 +83,10 @@ $url = new Url(
7283
| `setQuery(string\|array $query)` | `getQueryParameters(): array`
7384
| `setQueryParameter(string $name, $val)`| `getQueryParameter(string $name)`
7485

75-
Методът `getDomain(int $level = 2)` връща дясната или лявата страна на хоста. Ето как става това, ако хостът е `www.nette.org`:
86+
87+
getDomain(int $level = 2): string .[method]
88+
-------------------------------------------
89+
Връща дясната или лявата част на хоста. Ето как работи, ако хостът е `www.nette.org`:
7690

7791
.[language-php]
7892
| `getDomain(1)` | `'org'`
@@ -84,17 +98,33 @@ $url = new Url(
8498
| `getDomain(-3)` | `''`
8599

86100

87-
Класът `Url` имплементира интерфейса `JsonSerializable` и има метод `__toString()`, така че обектът може да бъде отпечатан или използван в данните, предадени на `json_encode()`.
101+
isEqual(string|Url $anotherUrl): bool .[method]
102+
-----------------------------------------------
103+
Проверява дали два URL адреса са идентични.
88104

89105
```php
90-
echo $url;
91-
echo json_encode([$url]);
106+
$url->isEqual('https://nette.org');
92107
```
93108

94-
Методът `isEqual(string|Url $anotherUrl): bool` проверява дали двата URL адреса са идентични.
109+
110+
Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2}
111+
----------------------------------------------------------------
112+
Проверява дали даден URL адрес е абсолютен. URL адресът се счита за абсолютен, ако започва със схема (напр. http, https, ftp), последвана от двоеточие.
95113

96114
```php
97-
$url->isEqual('https://nette.org');
115+
Url::isAbsolute('https://nette.org'); // true
116+
Url::isAbsolute('//nette.org'); // false
117+
```
118+
119+
120+
Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2}
121+
--------------------------------------------------------------------------
122+
Нормализира URL пътя, като премахва специалните сегменти `.` и `..`. Този метод премахва излишните елементи на пътя по същия начин, по който го правят браузърите.
123+
124+
```php
125+
Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt'
126+
Url::removeDotSegments('/../foo/./bar'); // '/foo/bar'
127+
Url::removeDotSegments('./today/../file.txt'); // 'file.txt'
98128
```
99129

100130

@@ -118,7 +148,18 @@ $newUrl = $url
118148
echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer'
119149
```
120150

121-
Следните методи са достъпни за извличане или промяна на отделни компоненти на URL:
151+
Класът `UrlImmutable` имплементира интерфейса `JsonSerializable` и предоставя метода `__toString()`, който ви позволява да отпечатате обекта или да го използвате с `json_encode()`.
152+
153+
```php
154+
echo $url;
155+
echo json_encode([$url]);
156+
```
157+
158+
159+
URL Components .[method]
160+
------------------------
161+
162+
Следните методи са достъпни за получаване или промяна на отделни компоненти на URL:
122163

123164
.[language-php]
124165
| Wither | Getter | Върната стойност
@@ -136,6 +177,8 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer'
136177
| | `getHostUrl(): string`| `'http://nette.org:8080'`
137178
| | `getAbsoluteUrl(): string` | пълен URL адрес
138179

180+
Методът `withoutUserInfo()` премахва `user` и `password`.
181+
139182
Можем да работим и с отделни параметри на заявката, като използваме:
140183

141184
.[language-php]
@@ -144,16 +187,44 @@ echo $newUrl; // 'http://nette.org:8080/en/?name=param#footer'
144187
| `withQuery(string\|array $query)` | `getQueryParameters(): array`
145188
| `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)`
146189

147-
Методът `getDomain(int $level = 2)` работи по същия начин като метода в `Url`. Методът `withoutUserInfo()` премахва `user` и `password`.
148190

149-
Класът `UrlImmutable` имплементира интерфейса `JsonSerializable` и има метод `__toString()`, така че обектът може да бъде отпечатан или използван в данните, предадени на `json_encode()`.
191+
getDomain(int $level = 2): string .[method]
192+
-------------------------------------------
193+
Връща дясната или лявата част на хоста. Ето как работи, ако хостът е `www.nette.org`:
194+
195+
.[language-php]
196+
| `getDomain(1)` | `'org'`
197+
| `getDomain(2)` | `'nette.org'`
198+
| `getDomain(3)` | `'www.nette.org'`
199+
| `getDomain(0)` | `'www.nette.org'`
200+
| `getDomain(-1)` | `'www.nette'`
201+
| `getDomain(-2)` | `'www'`
202+
| `getDomain(-3)` | `''`
203+
204+
205+
resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2}
206+
----------------------------------------------------------------------
207+
Разрешава абсолютен URL адрес по същия начин, по който браузърът обработва връзките в HTML страница:
208+
- Ако връзката е абсолютен URL адрес (съдържа схема), той се използва непроменен.
209+
- Ако връзката започва с `//`, се прилага само схемата от текущия URL адрес.
210+
- Ако връзката започва с `/`, се създава абсолютен път от корена на домейна.
211+
- В останалите случаи URL адресът се конструира относително към текущия път.
150212

151213
```php
152-
echo $url;
153-
echo json_encode([$url]);
214+
$url = new UrlImmutable('https://example.com/path/page');
215+
echo $url->resolve('../foo'); // 'https://example.com/foo'
216+
echo $url->resolve('/bar'); // 'https://example.com/bar'
217+
echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html'
154218
```
155219

156-
Методът `isEqual(string|Url $anotherUrl): bool` проверява дали двата URL адреса са идентични.
220+
221+
isEqual(string|Url $anotherUrl): bool .[method]
222+
-----------------------------------------------
223+
Проверява дали два URL адреса са идентични.
224+
225+
```php
226+
$url->isEqual('https://nette.org');
227+
```
157228

158229

159230
UrlScript .[#toc-urlscript]

Diff for: http/cs/urls.texy

+82-11
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,17 @@ $url = new Url(
4444
);
4545
```
4646

47+
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()`.
48+
49+
```php
50+
echo $url;
51+
echo json_encode([$url]);
52+
```
53+
54+
55+
Komponenty URL .[method]
56+
------------------------
57+
4758
Pro vrácení nebo změnu jednotlivých komponent URL jsou vám k dispozici tyto metody:
4859

4960
.[language-php]
@@ -72,7 +83,10 @@ Můžeme pracovat i s jednotlivými query parametry pomocí:
7283
| `setQuery(string\|array $query)` | `getQueryParameters(): array`
7384
| `setQueryParameter(string $name, $val)` | `getQueryParameter(string $name)`
7485

75-
Metoda `getDomain(int $level = 2)` vrací pravou či levou část hostitele. Takto funguje, pokud host je `www.nette.org`:
86+
87+
getDomain(int $level = 2): string .[method]
88+
-------------------------------------------
89+
Vrací pravou či levou část hostitele. Takto funguje, pokud host je `www.nette.org`:
7690

7791
.[language-php]
7892
| `getDomain(1)` | `'org'`
@@ -84,17 +98,33 @@ Metoda `getDomain(int $level = 2)` vrací pravou či levou část hostitele. Tak
8498
| `getDomain(-3)` | `''`
8599

86100

87-
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()`.
101+
isEqual(string|Url $anotherUrl): bool .[method]
102+
-----------------------------------------------
103+
Ověří, zda jsou dvě URL shodné.
88104

89105
```php
90-
echo $url;
91-
echo json_encode([$url]);
106+
$url->isEqual('https://nette.org');
92107
```
93108

94-
Metoda `isEqual(string|Url $anotherUrl): bool` ověří, zda jsou dvě URL shodné.
109+
110+
Url::isAbsolute(string $url): bool .[method]{data-version:3.3.2}
111+
----------------------------------------------------------------
112+
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.
95113

96114
```php
97-
$url->isEqual('https://nette.org');
115+
Url::isAbsolute('https://nette.org'); // true
116+
Url::isAbsolute('//nette.org'); // false
117+
```
118+
119+
120+
Url::removeDotSegments(string $path): string .[method]{data-version:3.3.2}
121+
--------------------------------------------------------------------------
122+
Normalizuje cestu v URL odstraněním speciálních segmentů `.` a `..`. Metoda odstraňuje nadbytečné prvky cesty stejným způsobem, jako to dělají webové prohlížeče.
123+
124+
```php
125+
Url::removeDotSegments('/path/../subtree/./file.txt'); // '/subtree/file.txt'
126+
Url::removeDotSegments('/../foo/./bar'); // '/foo/bar'
127+
Url::removeDotSegments('./today/../file.txt'); // 'file.txt'
98128
```
99129

100130

@@ -118,6 +148,17 @@ $newUrl = $url
118148
echo $newUrl; // 'http://nette.org:8080/cs/?name=param#footer'
119149
```
120150

151+
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()`.
152+
153+
```php
154+
echo $url;
155+
echo json_encode([$url]);
156+
```
157+
158+
159+
Komponenty URL .[method]
160+
------------------------
161+
121162
Pro vrácení nebo změnu jednotlivých komponent URL slouží metody:
122163

123164
.[language-php]
@@ -136,6 +177,8 @@ Pro vrácení nebo změnu jednotlivých komponent URL slouží metody:
136177
| | `getHostUrl(): string` | `'http://nette.org:8080'`
137178
| | `getAbsoluteUrl(): string` | celá URL
138179

180+
Metoda `withoutUserInfo()` odstraňuje `user` a `password`.
181+
139182
Můžeme pracovat i s jednotlivými query parametry pomocí:
140183

141184
.[language-php]
@@ -144,16 +187,44 @@ Můžeme pracovat i s jednotlivými query parametry pomocí:
144187
| `withQuery(string\|array $query)` | `getQueryParameters(): array`
145188
| `withQueryParameter(string $name, $val)` | `getQueryParameter(string $name)`
146189

147-
Metoda `getDomain(int $level = 2)` funguje stejně, jako její jmenovkyně ze třídy `Url`. Metoda `withoutUserInfo()` odstraňuje `user` a `password`.
148190

149-
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()`.
191+
getDomain(int $level = 2): string .[method]
192+
-------------------------------------------
193+
Vrací pravou či levou část hostitele. Takto funguje, pokud host je `www.nette.org`:
194+
195+
.[language-php]
196+
| `getDomain(1)` | `'org'`
197+
| `getDomain(2)` | `'nette.org'`
198+
| `getDomain(3)` | `'www.nette.org'`
199+
| `getDomain(0)` | `'www.nette.org'`
200+
| `getDomain(-1)` | `'www.nette'`
201+
| `getDomain(-2)` | `'www'`
202+
| `getDomain(-3)` | `''`
203+
204+
205+
resolve(string $reference): UrlImmutable .[method]{data-version:3.3.2}
206+
----------------------------------------------------------------------
207+
Odvozuje absolutní URL stejným způsobem, jakým prohlížeč zpracovává odkazy na HTML stránce:
208+
- pokud je odkaz absolutní URL (obsahuje schéma), použije se beze změny
209+
- pokud odkaz začíná `//`, převezme se pouze schéma z aktuální URL
210+
- pokud odkaz začíná `/`, vytvoří se absolutní cesta od kořene domény
211+
- v ostatních případech se URL sestaví relativně vůči aktuální cestě
150212

151213
```php
152-
echo $url;
153-
echo json_encode([$url]);
214+
$url = new UrlImmutable('https://example.com/path/page');
215+
echo $url->resolve('../foo'); // 'https://example.com/foo'
216+
echo $url->resolve('/bar'); // 'https://example.com/bar'
217+
echo $url->resolve('sub/page.html'); // 'https://example.com/path/sub/page.html'
154218
```
155219

156-
Metoda `isEqual(string|Url $anotherUrl): bool` ověří, zda jsou dvě URL shodné.
220+
221+
isEqual(string|Url $anotherUrl): bool .[method]
222+
-----------------------------------------------
223+
Ověří, zda jsou dvě URL shodné.
224+
225+
```php
226+
$url->isEqual('https://nette.org');
227+
```
157228

158229

159230
UrlScript

0 commit comments

Comments
 (0)