Nette Documentation Preview

syntax
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