Actualización

Actualización a la versión 3.4

La versión mínima de PHP requerida es la 8.3.

  • el método Request::isSameSite() está obsoleto en favor de isFrom(), que determina el origen de la petición a partir de las cabeceras Sec-Fetch-*. La protección automática de los formularios y las señales se vuelve más precisa y cambia un comportamiento: la navegación directa (un marcador, una dirección escrita a mano, un enlace en un correo) ya no se considera same-site. Si una señal depende de enlaces de acción en correos, márquela con #[Requires(sameOrigin: false)].
  • la cookie _nss se envía ahora solo a los navegadores que no envían la cabecera Sec-Fetch-Site
  • setCookie() envía el atributo Max-Age y fuerza la bandera Secure en las cookies con SameSite=None y en las particionadas
  • el enum SameSite sustituye a las constantes IResponse::SameSiteLax etc., que quedan obsoletas
  • la expiración se interpreta igual en todas partes: un número es un número relativo de segundos, una cadena es un intervalo o una fecha. Pasar un timestamp UNIX absoluto está obsoleto y una cookie de sesión se representa con null en lugar de 0.
  • el método obsoleto Request::getRemoteHost() devuelve null
  • se ha eliminado la clase, obsoleta desde hace tiempo, Nette\Http\UserStorage

Toda la historia del cambio a las cabeceras Sec-Fetch-* se cuenta en el artículo Quarter Century of CSRF.

Actualización a la versión 3.2

  • las credenciales de la autenticación HTTP Basic ya no forman parte del objeto Url, así que $url->getUser() y $url->getPassword() devuelven una cadena vacía. Léalas con el nuevo método $request->getBasicCredentials().

Los motivos de este cambio se explican en el artículo Nette Http 3.2: change access to credentials.

Actualización a la versión 3.1

  • las cookies se envían con la bandera sameSite: Lax
  • cookieSecure tiene ahora el valor predeterminado ‘auto’
  • la opción session.cookieSecure está obsoleta; en su lugar se usa http.cookieSecure
  • la cookie nette-samesite se ha renombrado a _nss
  • Nette\Http\Request::getFile() acepta un array de claves y devuelve FileUpload|null
  • Nette\Http\Session::getCookieParameters() está obsoleto
  • Nette\Http\FileUpload::getName() se ha renombrado a getUntrustedName()
  • Nette\Http\Url: getBasePath(), getBaseUrl() y getRelativeUrl() están obsoletos (estos métodos forman parte de UrlScript)
  • Nette\Http\Response::$cookieHttpOnly está obsoleto
  • Nette\Http\FileUpload::getImageSize() devuelve el par [width, height]
  • con autoStart: smart (el valor predeterminado), la sesión ya no se inicia justo después de arrancar la aplicación solo porque el navegador haya enviado una cookie de sesión; se inicia en la primera lectura o escritura. Se han añadido los valores always y never.
  • cuando el navegador envía un ID de sesión para el que no existe ninguna sesión, Nette borra la cookie en lugar de crear una sesión nueva
  • para acceder a las secciones de la sesión prefiera los métodos set(), get() y remove(); a diferencia del acceso por propiedad, distinguen correctamente la lectura de la escritura y no inician la sesión innecesariamente
  • los valores predeterminados de cookiePath y cookieDomain se pueden establecer en la configuración

El comportamiento de las sesiones se describe en detalle en el artículo Nette Http 3.1: much smarter sessions.

Actualización a la versión 3.0

  • el objeto Nette\Http\UrlScript (que devuelve, por ejemplo, Nette\Http\Request::getUrl()) es ahora inmutable
  • en new Nette\Http\Url('abcd'), abcd representa la ruta, no el dominio; desde la 3.0, (new Nette\Http\Url('abcd'))->setScheme('http') genera correctamente http:abcd en lugar del anterior http://abcd
versión: 4.x