Nette Documentation Preview

syntax
Aktualizacja
************


Aktualizacja do wersji 3.4
==========================

Minimalna wymagana wersja PHP to 8.3.

- metoda `Request::isSameSite()` jest przestarzała na rzecz `isFrom()`, która ustala pochodzenie żądania z nagłówków `Sec-Fetch-*`. Automatyczna ochrona formularzy i sygnałów staje się precyzyjniejsza, a jedno zachowanie się zmienia: bezpośrednie wejście (zakładka, ręcznie wpisany adres, odnośnik w e-mailu) nie jest już uznawane za same-site. Jeśli sygnał opiera się na odnośnikach akcji w e-mailach, oznacz go `#[Requires(sameOrigin: false)]`.
- cookie `_nss` jest teraz wysyłane tylko do przeglądarek, które nie wysyłają nagłówka `Sec-Fetch-Site`
- `setCookie()` wysyła atrybut `Max-Age` i wymusza flagę `Secure` dla `SameSite=None` oraz dla cookies partycjonowanych
- enum `SameSite` zastępuje stałe `IResponse::SameSiteLax` itd., które są przestarzałe
- wygaśnięcie interpretowane jest wszędzie tak samo: liczba to względna liczba sekund, ciąg to interwał albo data. Przekazywanie absolutnego uniksowego timestampu jest przestarzałe, a cookie sesyjne reprezentuje `null` zamiast `0`.
- przestarzała metoda `Request::getRemoteHost()` zwraca `null`
- dawno przestarzała klasa `Nette\Http\UserStorage` została usunięta

Całą historię przejścia na nagłówki `Sec-Fetch-*` opowiada artykuł [Ćwierć wieku CSRF |https://blog.nette.org/en/quarter-century-of-csrf].


Aktualizacja do wersji 3.2
==========================

- dane uwierzytelniające z HTTP Basic Authentication nie są już częścią obiektu `Url`, więc `$url->getUser()` i `$url->getPassword()` zwracają pusty ciąg. Odczytasz je nową metodą `$request->getBasicCredentials()`.

Powody tej zmiany wyjaśnia artykuł [Nette Http 3.2: zmiana dostępu do danych uwierzytelniających |https://blog.nette.org/en/nette-http-3-2-change-access-to-credentials].


Aktualizacja do wersji 3.1
==========================

- cookies wysyłane są z flagą `sameSite: Lax`
- `cookieSecure` ma teraz domyślnie wartość 'auto'
- opcja `session.cookieSecure` jest przestarzała, używane jest zamiast niej `http.cookieSecure`
- cookie `nette-samesite` zostało przemianowane na `_nss`
- `Nette\Http\Request::getFile()` przyjmuje tablicę kluczy i zwraca `FileUpload|null`
- `Nette\Http\Session::getCookieParameters()` jest przestarzałe
- `Nette\Http\FileUpload::getName()` zostało przemianowane na `getUntrustedName()`
- `Nette\Http\Url`: `getBasePath()`, `getBaseUrl()` i `getRelativeUrl()` są przestarzałe (metody te są częścią `UrlScript`)
- `Nette\Http\Response::$cookieHttpOnly` jest przestarzałe
- `Nette\Http\FileUpload::getImageSize()` zwraca parę `[width, height]`
- przy `autoStart: smart` (domyślne) sesja nie jest już uruchamiana zaraz po starcie aplikacji tylko dlatego, że przeglądarka wysłała cookie sesyjne; uruchamia się przy pierwszym odczycie albo zapisie. Dodano wartości `always` i `never`.
- gdy przeglądarka wyśle ID sesji, dla którego żadna sesja nie istnieje, Nette usuwa cookie zamiast tworzyć nową sesję
- do dostępu do sekcji sesji preferuj metody `set()`, `get()` i `remove()`; w przeciwieństwie do dostępu przez właściwości poprawnie rozróżniają odczyt od zapisu i nie uruchamiają sesji niepotrzebnie
- wartości domyślne `cookiePath` i `cookieDomain` można ustawić w konfiguracji

Zachowanie sesji opisuje szczegółowo artykuł [Nette Http 3.1: znacznie sprytniejsze sesje |https://blog.nette.org/en/nette-http-3-1-much-smarter-sessions].


Aktualizacja do wersji 3.0
==========================

- obiekt `Nette\Http\UrlScript` (zwracany np. przez `Nette\Http\Request::getUrl()`) jest teraz niezmienny
- w `new Nette\Http\Url('abcd')` `abcd` reprezentuje ścieżkę, a nie domenę; od 3.0 `(new Nette\Http\Url('abcd'))->setScheme('http')` poprawnie generuje `http:abcd` zamiast wcześniejszego `http://abcd`

Aktualizacja

Aktualizacja do wersji 3.4

Minimalna wymagana wersja PHP to 8.3.

Całą historię przejścia na nagłówki Sec-Fetch-* opowiada artykuł Ćwierć wieku CSRF.

Aktualizacja do wersji 3.2

Powody tej zmiany wyjaśnia artykuł Nette Http 3.2: zmiana dostępu do danych uwierzytelniających.

Aktualizacja do wersji 3.1

Zachowanie sesji opisuje szczegółowo artykuł Nette Http 3.1: znacznie sprytniejsze sesje.

Aktualizacja do wersji 3.0