Yükseltme
*********
Sürüm 3.4'e Yükseltme
=====================
Gereken en düşük PHP sürümü 8.3'tür.
- `Request::isSameSite()` metodu kullanımdan kaldırıldı; yerine, isteğin kaynağını `Sec-Fetch-*` header'larından belirleyen `isFrom()` geldi. Formların ve sinyallerin otomatik koruması daha isabetli oluyor ve bir davranış değişiyor: doğrudan gezinme (bir yer imi, elle yazılan bir adres, e-postadaki bir bağlantı) artık aynı site sayılmıyor. Bir sinyal e-postadaki eylem bağlantılarına dayanıyorsa, onu `#[Requires(sameOrigin: false)]` ile işaretleyin.
- `_nss` çerezi artık yalnızca `Sec-Fetch-Site` header'ını göndermeyen tarayıcılara gönderiliyor
- `setCookie()`, `Max-Age` niteliğini gönderiyor ve `SameSite=None` ile bölümlenmiş çerezlerde `Secure` bayrağını zorluyor
- `SameSite` enum'u, kullanımdan kaldırılan `IResponse::SameSiteLax` gibi sabitlerin yerini alıyor
- son kullanma her yerde aynı şekilde yorumlanıyor: sayı göreli saniye sayısı, dize ise bir aralık ya da tarihtir. Mutlak bir UNIX zaman damgası vermek kullanımdan kaldırıldı ve oturum çerezi `0` yerine `null` ile temsil ediliyor.
- kullanımdan kaldırılmış `Request::getRemoteHost()` metodu `null` döndürüyor
- uzun süredir kullanımdan kaldırılmış `Nette\Http\UserStorage` sınıfı kaldırıldı
`Sec-Fetch-*` header'larına geçişin tüm hikâyesi [Çeyrek yüzyıllık CSRF |https://blog.nette.org/en/quarter-century-of-csrf] yazısında anlatılıyor.
Sürüm 3.2'ye Yükseltme
======================
- HTTP Basic Authentication kimlik bilgileri artık `Url` nesnesinin parçası değil, dolayısıyla `$url->getUser()` ve `$url->getPassword()` boş dize döndürüyor. Onları yeni `$request->getBasicCredentials()` metoduyla okuyun.
Bu değişikliğin nedenleri [Nette Http 3.2: kimlik bilgilerine erişim değişiyor |https://blog.nette.org/en/nette-http-3-2-change-access-to-credentials] yazısında açıklanıyor.
Sürüm 3.1'e Yükseltme
=====================
- çerezler `sameSite: Lax` bayrağıyla gönderiliyor
- `cookieSecure` artık varsayılan olarak 'auto'
- `session.cookieSecure` seçeneği kullanımdan kaldırıldı; yerine `http.cookieSecure` kullanılıyor
- `nette-samesite` çerezinin adı `_nss` oldu
- `Nette\Http\Request::getFile()` bir anahtar dizisi kabul ediyor ve `FileUpload|null` döndürüyor
- `Nette\Http\Session::getCookieParameters()` kullanımdan kaldırıldı
- `Nette\Http\FileUpload::getName()` metodunun adı `getUntrustedName()` oldu
- `Nette\Http\Url`: `getBasePath()`, `getBaseUrl()` ve `getRelativeUrl()` kullanımdan kaldırıldı (bu metotlar `UrlScript` sınıfının parçası)
- `Nette\Http\Response::$cookieHttpOnly` kullanımdan kaldırıldı
- `Nette\Http\FileUpload::getImageSize()` `[genişlik, yükseklik]` çiftini döndürüyor
- `autoStart: smart` (varsayılan) ile oturum, yalnızca tarayıcı bir oturum çerezi gönderdi diye uygulama başlar başlamaz artık başlatılmıyor; ilk okuma ya da yazmada başlıyor. `always` ve `never` değerleri eklendi.
- tarayıcı, karşılığında oturum bulunmayan bir oturum ID'si gönderdiğinde Nette yeni bir oturum oluşturmak yerine çerezi siliyor
- oturum bölümlerine erişmek için `set()`, `get()` ve `remove()` metotlarını yeğleyin; özellik erişiminin aksine okumayı yazmadan doğru ayırt eder ve oturumu gereksiz yere başlatmazlar
- `cookiePath` ve `cookieDomain` varsayılan değerleri yapılandırmada ayarlanabilir
Oturumların davranışı [Nette Http 3.1: çok daha akıllı oturumlar |https://blog.nette.org/en/nette-http-3-1-much-smarter-sessions] yazısında ayrıntılı anlatılıyor.
Sürüm 3.0'a Yükseltme
=====================
- `Nette\Http\UrlScript` nesnesi (örneğin `Nette\Http\Request::getUrl()` metodunun döndürdüğü) artık değişmez
- `new Nette\Http\Url('abcd')` içinde `abcd` alan adını değil yolu temsil ediyor; 3.0'dan beri `(new Nette\Http\Url('abcd'))->setScheme('http')` önceki `http://abcd` yerine doğru biçimde `http:abcd` üretiyor
Yükseltme
Sürüm 3.4'e Yükseltme
Gereken en düşük PHP sürümü 8.3'tür.
Request::isSameSite() metodu kullanımdan kaldırıldı; yerine, isteğin kaynağını Sec-Fetch-*
header'larından belirleyen isFrom() geldi. Formların ve sinyallerin otomatik koruması daha isabetli oluyor ve bir
davranış değişiyor: doğrudan gezinme (bir yer imi, elle yazılan bir adres, e-postadaki bir bağlantı) artık aynı site
sayılmıyor. Bir sinyal e-postadaki eylem bağlantılarına dayanıyorsa, onu #[Requires(sameOrigin: false)] ile
işaretleyin.
_nss çerezi artık yalnızca Sec-Fetch-Site header'ını göndermeyen tarayıcılara
gönderiliyor
setCookie(), Max-Age niteliğini gönderiyor ve SameSite=None ile bölümlenmiş
çerezlerde Secure bayrağını zorluyor
SameSite enum'u, kullanımdan kaldırılan IResponse::SameSiteLax gibi sabitlerin
yerini alıyor
- son kullanma her yerde aynı şekilde yorumlanıyor: sayı göreli saniye sayısı, dize ise bir aralık ya da tarihtir.
Mutlak bir UNIX zaman damgası vermek kullanımdan kaldırıldı ve oturum çerezi
0 yerine null ile
temsil ediliyor.
- kullanımdan kaldırılmış
Request::getRemoteHost() metodu null döndürüyor
- uzun süredir kullanımdan kaldırılmış
Nette\Http\UserStorage sınıfı kaldırıldı
Sec-Fetch-* header'larına geçişin tüm hikâyesi Çeyrek yüzyıllık CSRF yazısında anlatılıyor.
Sürüm 3.2'ye Yükseltme
- HTTP Basic Authentication kimlik bilgileri artık
Url nesnesinin parçası değil, dolayısıyla
$url->getUser() ve $url->getPassword() boş dize döndürüyor. Onları yeni
$request->getBasicCredentials() metoduyla okuyun.
Bu değişikliğin nedenleri Nette Http 3.2:
kimlik bilgilerine erişim değişiyor yazısında açıklanıyor.
Sürüm 3.1'e Yükseltme
- çerezler
sameSite: Lax bayrağıyla gönderiliyor
cookieSecure artık varsayılan olarak ‘auto’
session.cookieSecure seçeneği kullanımdan kaldırıldı; yerine http.cookieSecure
kullanılıyor
nette-samesite çerezinin adı _nss oldu
Nette\Http\Request::getFile() bir anahtar dizisi kabul ediyor ve FileUpload|null döndürüyor
Nette\Http\Session::getCookieParameters() kullanımdan kaldırıldı
Nette\Http\FileUpload::getName() metodunun adı getUntrustedName() oldu
Nette\Http\Url: getBasePath(), getBaseUrl() ve getRelativeUrl()
kullanımdan kaldırıldı (bu metotlar UrlScript sınıfının parçası)
Nette\Http\Response::$cookieHttpOnly kullanımdan kaldırıldı
Nette\Http\FileUpload::getImageSize() [genişlik, yükseklik] çiftini döndürüyor
autoStart: smart (varsayılan) ile oturum, yalnızca tarayıcı bir oturum çerezi gönderdi diye uygulama
başlar başlamaz artık başlatılmıyor; ilk okuma ya da yazmada başlıyor. always ve never
değerleri eklendi.
- tarayıcı, karşılığında oturum bulunmayan bir oturum ID'si gönderdiğinde Nette yeni bir oturum oluşturmak yerine
çerezi siliyor
- oturum bölümlerine erişmek için
set(), get() ve remove() metotlarını yeğleyin;
özellik erişiminin aksine okumayı yazmadan doğru ayırt eder ve oturumu gereksiz yere başlatmazlar
cookiePath ve cookieDomain varsayılan değerleri yapılandırmada ayarlanabilir
Oturumların davranışı Nette Http 3.1: çok daha
akıllı oturumlar yazısında ayrıntılı anlatılıyor.
Sürüm 3.0'a Yükseltme
Nette\Http\UrlScript nesnesi (örneğin Nette\Http\Request::getUrl() metodunun döndürdüğü)
artık değişmez
new Nette\Http\Url('abcd') içinde abcd alan adını değil yolu temsil ediyor; 3.0'dan beri
(new Nette\Http\Url('abcd'))->setScheme('http') önceki http://abcd yerine doğru biçimde
http:abcd üretiyor