Aggiornamento
Aggiornamento alla versione 3.4
La versione minima richiesta di PHP è la 8.3.
- il metodo
Request::isSameSite()è deprecato a favore diisFrom(), che determina l'origine della richiesta dagli headerSec-Fetch-*. La protezione automatica dei form e dei segnali diventa più precisa e cambia un comportamento: la navigazione diretta (un segnalibro, un indirizzo digitato a mano, un link in una email) non è più considerata same-site. Se un segnale conta sui link di azione nelle email, contrassegnatelo con#[Requires(sameOrigin: false)]. - il cookie
_nssviene ora inviato solo ai browser che non inviano l'headerSec-Fetch-Site setCookie()invia l'attributoMax-Agee forza il flagSecureperSameSite=Nonee per i cookie partizionati- l'enum
SameSitesostituisce le costantiIResponse::SameSiteLaxecc., che sono deprecate - la scadenza viene interpretata ovunque allo stesso modo: un numero è un numero relativo di secondi, una stringa è un
intervallo o una data. Passare un timestamp UNIX assoluto è deprecato e il cookie di sessione si rappresenta con
nullinvece che con0. - il metodo deprecato
Request::getRemoteHost()restituiscenull - la classe deprecata da tempo
Nette\Http\UserStorageè stata rimossa
Tutta la storia del passaggio agli header Sec-Fetch-* è raccontata nell'articolo Quarter Century of CSRF.
Aggiornamento alla versione 3.2
- le credenziali dell'HTTP Basic Authentication non fanno più parte dell'oggetto
Url, quindi$url->getUser()e$url->getPassword()restituiscono una stringa vuota. Leggetele con il nuovo metodo$request->getBasicCredentials().
I motivi di questo cambiamento sono spiegati nell'articolo Nette Http 3.2: change access to credentials.
Aggiornamento alla versione 3.1
- i cookie vengono inviati con il flag
sameSite: Lax cookieSecureha ora il valore predefinito ‘auto’- l'opzione
session.cookieSecureè deprecata, al suo posto si usahttp.cookieSecure - il cookie
nette-samesiteè stato rinominato in_nss Nette\Http\Request::getFile()accetta un array di chiavi e restituisceFileUpload|nullNette\Http\Session::getCookieParameters()è deprecatoNette\Http\FileUpload::getName()è stato rinominato ingetUntrustedName()Nette\Http\Url:getBasePath(),getBaseUrl()egetRelativeUrl()sono deprecati (questi metodi fanno parte diUrlScript)Nette\Http\Response::$cookieHttpOnlyè deprecatoNette\Http\FileUpload::getImageSize()restituisce la coppia[larghezza, altezza]- con
autoStart: smart(il valore predefinito) la sessione non viene più avviata subito dopo l'avvio dell'applicazione solo perché il browser ha inviato un cookie di sessione; si avvia alla prima lettura o scrittura. Sono stati aggiunti i valorialwaysenever. - quando il browser invia un ID di sessione per il quale non esiste alcuna sessione, Nette cancella il cookie invece di creare una nuova sessione
- per accedere alle sezioni della sessione preferite i metodi
set(),get()eremove(); a differenza dell'accesso tramite proprietà distinguono correttamente la lettura dalla scrittura e non avviano la sessione inutilmente - i valori predefiniti di
cookiePathecookieDomainsi possono impostare nella configurazione
Il comportamento delle sessioni è descritto in dettaglio nell'articolo Nette Http 3.1: much smarter sessions.
Aggiornamento alla versione 3.0
- l'oggetto
Nette\Http\UrlScript(restituito per esempio daNette\Http\Request::getUrl()) è ora immutabile - in
new Nette\Http\Url('abcd')la stringaabcdrappresenta il percorso, non il dominio; dalla 3.0(new Nette\Http\Url('abcd'))->setScheme('http')genera correttamentehttp:abcdinvece del precedentehttp://abcd