You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: http/cs/request.texy
+2-2
Original file line number
Diff line number
Diff line change
@@ -4,9 +4,9 @@ HTTP request
4
4
.[perex]
5
5
Nette zapouzdřuje HTTP požadavek do objektů se srozumitelným API a zároveň poskytuje sanitizační filtr.
6
6
7
-
HTTP požadavek představuje objekt [api:Nette\Http\Request], ke kterému se dostanete tak, že si jej necháte předat pomocí [dependency injection |dependency-injection:passing-dependencies]. V presenterech stačí jen zavolat `$httpRequest = $this->getHttpRequest()`.
7
+
HTTP požadavek představuje objekt [api:Nette\Http\Request]. Pokud pracujete s Nette Frameworkem, tento objekt je automaticky vytvořen frameworkem a můžete si jej nechat předat pomocí [dependency injection |dependency-injection:passing-dependencies]. V presenterech dokonce stačí jen zavolat metodu `$this->getHttpRequest()`. Pokud pracujete mimo Nette Framework, můžete si vytvořit objekt pomocí [RequestFactory|#RequestFactory].
8
8
9
-
Co je důležité, tak že Nette když [vytváří|#RequestFactory] tento objekt, všechny vstupní parametry GET, POST, COOKIE a také URL pročistí od kontrolních znaků a neplatných UTF-8 sekvencí. Takže s daty pak můžete bezpečně dále pracovat. Očištěná data se následně používají v presenterech a formulářích.
9
+
Velkou předností Nette je, že při vytváření objektu automaticky pročišťuje všechny vstupní parametry GET, POST, COOKIE a také URL od kontrolních znaků a neplatných UTF-8 sekvencí. S těmito daty pak můžete bezpečně dále pracovat. Očištěná data se následně používají v presenterech a formulářích.
Třída [api:Nette\Http\UrlImmutable] je immutable (neměnnou) alternativou třídy `Url` (podobně jako je v PHP `DateTimeImmutable` neměnnou alternativou `DateTime`). Místo setterů má tzv. withery, které objekt nemění, ale vracejí nové instance s upravenou hodnotou:
134
+
Třída [api:Nette\Http\UrlImmutable] je immutable (neměnnou) alternativou třídy [#Url] (podobně jako je v PHP `DateTimeImmutable` neměnnou alternativou `DateTime`). Místo setterů má tzv. withery, které objekt nemění, ale vracejí nové instance s upravenou hodnotou:
Třída [api:Nette\Http\UrlScript] je potomkem `UrlImmutable` a navíc rozlišuje tyto další logické části URL:
233
+
Třída [api:Nette\Http\UrlScript] je potomkem [#UrlImmutable] a rozšiřuje jej o další virtuální komponenty URL, jako je kořenový adresáři projektu apod. Stejně jako rodičovská třída je immutable (neměnným) objektem.
234
+
235
+
Následující diagram zobrazuje komponenty, které UrlScript rozpoznává:
234
236
235
237
/--pre
236
238
baseUrl basePath relativePath relativeUrl
@@ -242,6 +244,13 @@ Třída [api:Nette\Http\UrlScript] je potomkem `UrlImmutable` a navíc rozlišuj
242
244
scriptPath pathInfo
243
245
\--
244
246
247
+
- **baseUrl** - základní URL adresa aplikace včetně domény a části cesty ke kořenovému adresáři aplikace
248
+
- **basePath** - části cesty ke kořenovému adresáři aplikace
249
+
- **scriptPath** - cesta k aktuálnímu skriptu
250
+
- **relativePath** - název skriptu (případně další segmenty cesty) relativní k basePath
251
+
- **relativeUrl** - celá část URL za baseUrl, včetně query string a fragmentu.
252
+
- **pathInfo** - část URL za názvem skriptu, dnes už moc nepoužívaná
253
+
245
254
Pro vrácení částí URL jsou k dispozici metody:
246
255
247
256
.[language-php]
@@ -254,4 +263,4 @@ Pro vrácení částí URL jsou k dispozici metody:
Objekty `UrlScript` přímo nevytváříme, ale vrací jej metoda [Nette\Http\Request::getUrl()|request].
266
+
Objekty `UrlScript` obvykle přímo nevytváříme, ale vrací jej metoda [Nette\Http\Request::getUrl()|request] s již správně nastavenými komponentami pro aktuální HTTP požadavek.
0 commit comments