Nette Documentation Preview

syntax
Yükseltme
*********


Sürüm 3.1'e Yükseltme
=====================

- autowiring, varsayılan değeri olmayan nullable bir parametreye artık `null` aktarmıyor; argümanı açıkça verin ya da parametreye bir varsayılan değer tanımlayın
- `@return` açıklaması desteği kaldırıldı; bir dönüş türü kullanın ya da türü servis tanımında `type:` ile belirtin
- `dynamic` anahtarının adı `imported`, `class` anahtarının adı `type` olarak değişti
- atlanan argümanın simgesi `...` yerine `_` oldu, örneğin `MyService(_, 123)`
- NEON dosyalarında, dizenin başındaki `@` karakterinin artık kaçışlanması gerekmiyor
- üretilen factory tanımlarının içindeki `parameters` anahtarı kullanımdan kaldırıldı
- `Nette\DI\Config\Loader::save()` metodu kullanımdan kaldırıldı; yapılandırmayı `Nette\DI\Config\Adapters\NeonAdapter::dump()` ile dışa aktarın

3.1 sürümü bir geçiş sürümüdür: yeni özellik getirmez, ama sonradan farklı çalışacak her şey için notice'larla uyarır. [Nette DI 3.1: geçiş sürümü |https://blog.nette.org/en/nette-di-3-1-transition-release] yazısına bakın.


Sürüm 3.0'a Yükseltme
=====================

- INI dosyaları desteği kaldırıldı
- yapılandırmaya soru işaretleriyle doğrudan PHP kodu yazma (örneğin `"$service->onError[] = ?"(...)`) kaldırıldı; bunun yerine `'$onError[]' = [...]` dizi söz dizimini kullanın
- yapılandırma dosyalarında `class: PDO(...)` yerine `factory: PDO(...)` kullanın
- presenter'lar için `nette.presenter` etiketi artık kullanılmıyor


Compiler Extension Yazarları İçin
---------------------------------

Nette 2.4 içeride her servisi `Nette\DI\ServiceDefinition` olarak tanımlarken, artık birkaç tanım türü var: içe aktarılan (dinamik) servisler için `Nette\DI\Definitions\ImportedDefinition`, arayüz tabanlı üretilen factory'ler için `Nette\DI\Definitions\FactoryDefinition`, üretilen accessor'lar için `Nette\DI\Definitions\AccessorDefinition` ve sıradan servisler için `Nette\DI\Definitions\ServiceDefinition`.

Bu yüzden `ContainerBuilder::addDefinition()` metodunun yanında yeni tanım oluşturmaya yarayan birkaç metot daha var: `addFactoryDefinition()`, `addAccessorDefinition()` ve `addImportedDefinition()`.


Sürüm 2.4'e Yükseltme
=====================

- tek bir yapılandırma dosyasındaki yapılandırma bölümleri (örneğin production, development) kullanımdan kaldırıldı; `config.neon` ve `config.local.neon` dosya çiftini kullanın
- servis tanımlarının kalıtımı kullanımdan kaldırıldı
- `Statement::setEntity()` kullanımdan kaldırıldı


Sürüm 2.3'e Yükseltme
=====================

- servisleri yapılandırma dosyasının extension bölümüne koyma desteği kaldırıldı
- dinamik olarak eklenen extension'ların desteği kaldırıldı
- bir servisi dinamik olarak değiştirirken (`removeService()`, `addService()` ile), yeni servis özgün servisle aynı arayüzün/sınıfın bir örneği olmalıdır

Yükseltme

Sürüm 3.1'e Yükseltme

  • autowiring, varsayılan değeri olmayan nullable bir parametreye artık null aktarmıyor; argümanı açıkça verin ya da parametreye bir varsayılan değer tanımlayın
  • @return açıklaması desteği kaldırıldı; bir dönüş türü kullanın ya da türü servis tanımında type: ile belirtin
  • dynamic anahtarının adı imported, class anahtarının adı type olarak değişti
  • atlanan argümanın simgesi ... yerine _ oldu, örneğin MyService(_, 123)
  • NEON dosyalarında, dizenin başındaki @ karakterinin artık kaçışlanması gerekmiyor
  • üretilen factory tanımlarının içindeki parameters anahtarı kullanımdan kaldırıldı
  • Nette\DI\Config\Loader::save() metodu kullanımdan kaldırıldı; yapılandırmayı Nette\DI\Config\Adapters\NeonAdapter::dump() ile dışa aktarın

3.1 sürümü bir geçiş sürümüdür: yeni özellik getirmez, ama sonradan farklı çalışacak her şey için notice'larla uyarır. Nette DI 3.1: geçiş sürümü yazısına bakın.

Sürüm 3.0'a Yükseltme

  • INI dosyaları desteği kaldırıldı
  • yapılandırmaya soru işaretleriyle doğrudan PHP kodu yazma (örneğin "$service->onError[] = ?"(...)) kaldırıldı; bunun yerine '$onError[]' = [...] dizi söz dizimini kullanın
  • yapılandırma dosyalarında class: PDO(...) yerine factory: PDO(...) kullanın
  • presenter'lar için nette.presenter etiketi artık kullanılmıyor

Compiler Extension Yazarları İçin

Nette 2.4 içeride her servisi Nette\DI\ServiceDefinition olarak tanımlarken, artık birkaç tanım türü var: içe aktarılan (dinamik) servisler için Nette\DI\Definitions\ImportedDefinition, arayüz tabanlı üretilen factory'ler için Nette\DI\Definitions\FactoryDefinition, üretilen accessor'lar için Nette\DI\Definitions\AccessorDefinition ve sıradan servisler için Nette\DI\Definitions\ServiceDefinition.

Bu yüzden ContainerBuilder::addDefinition() metodunun yanında yeni tanım oluşturmaya yarayan birkaç metot daha var: addFactoryDefinition(), addAccessorDefinition() ve addImportedDefinition().

Sürüm 2.4'e Yükseltme

  • tek bir yapılandırma dosyasındaki yapılandırma bölümleri (örneğin production, development) kullanımdan kaldırıldı; config.neon ve config.local.neon dosya çiftini kullanın
  • servis tanımlarının kalıtımı kullanımdan kaldırıldı
  • Statement::setEntity() kullanımdan kaldırıldı

Sürüm 2.3'e Yükseltme

  • servisleri yapılandırma dosyasının extension bölümüne koyma desteği kaldırıldı
  • dinamik olarak eklenen extension'ların desteği kaldırıldı
  • bir servisi dinamik olarak değiştirirken (removeService(), addService() ile), yeni servis özgün servisle aynı arayüzün/sınıfın bir örneği olmalıdır