Nette Documentation Preview

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


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

Gereken en düşük PHP sürümü 8.0'dır.

`Nette\Utils\Reflection` sınıfı, türlerle çalışmak için `getParameterType()`, `getPropertyType()` ve `getReturnType()` metotlarını sunuyordu. Bu metotlar, PHP'de henüz birleşim (union), kesişim (intersection) ve en yeni ayrık normal biçim türleri yokken oluşturulmuştu ve bunlarla artık doğru çalışmıyorlar. Yerlerini [Type sınıfı |type] aldı. 4.0 sürümünden itibaren bu metotlar kaldırıldı.

`Nette\Utils\Html::$xhtml` değişkeni kaldırıldı.

Bazı metotlardaki bayrakların yerini adlandırılmış argümanlar aldı. Özgün yazım hâlâ çalışıyor ama artık tercih edilmiyor: `Json::PRETTY` → `pretty:`, `Json::ESCAPE_UNICODE` → `asciiSafe:`, `Json::FORCE_ARRAY` → `forceArrays:`, `Arrays::grep()` içindeki `PREG_GREP_INVERT` → `invert:`, `Image::resize()` içindeki `Image::SHRINK_ONLY` → `shrinkOnly:` ve `Strings::split()`, `match()` ile `matchAll()` içindeki `PREG_*` bayrakları.

`Nette\Utils\Reflection::getParameterDefaultValue()` metodu kullanımdan kaldırıldı, çünkü PHP'nin kendi `ReflectionParameter::getDefaultValue()` metodu artık doğru çalışıyor.

RobotLoader kullanıyorsanız onu da 4. sürüme güncelleyin.


Finder
------

Finder, `nette/utils` paketine taşındı. Özgün `nette/finder` paketini kaldırın:

```shell
composer remove nette/finder
```

Linux'ta Finder artık varsayılan olarak büyük/küçük harfe duyarlı çalışıyor.

Önceki sürümde `exclude()` ve `filter()` metotları, `from()` ya da `in()` çağrısından **önce** mi **sonra** mı çağrıldıklarına göre farklı davranıyordu. Artık böyle değil; `exclude()` ve `filter()` her zaman aynı şekilde çalışıyor. `from()`/`in()` çağrısından *sonra* çağrılan `filter()` davranışını artık yeni `descentFilter()` metodu üstleniyor.

Finder artık `Countable` arayüzünü uygulamıyor.

`Finder::findFiles('/f*')` içinde eğik çizgiyle başlayan bir dize artık mutlak yol sayılıyor. Geçerli dizine göre göreli bir yol kastettiyseniz, bunu örneğin `Finder::findFiles('./f*')` ile değiştirin.

İçinde arama yaptığınız dizin yoksa, `Nette\InvalidStateException` fırlatılır (önceki `UnexpectedValueException` yerine).

Baştan yazılan Finder'ın başka neler yapabildiği [Finder 4.0: kaputun altında 10 yıllık deneyim |https://blog.nette.org/en/finder-4-10-years-of-experience-under-the-hood] yazısında anlatılıyor.


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

- `Nette\Utils\Arrays::searchKey()` metodunun adı `getKeyOffset()` olarak değişti
- `Nette\Utils\Callback::closure()` kullanımdan kaldırıldı, yerine `Closure::fromCallable()` kullanın
- `Nette\Utils\Reflection::toString()` fonksiyon/metot adının ardına `()` ekliyor
- ext-intl yoksa `Nette\Utils\Strings::toAscii()` bir notice tetikliyor


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

`Nette\Localization\ITranslator` arayüzü değişti.

`Nette\Object` Nette 2.4'ten beri kullanımdan kaldırılmıştı ve Nette 3.0'da tamamen çıkarıldı, ancak [nette/deprecated |https://github.com/nette/deprecated] paketinde `Nette\LegacyObject` adıyla varlığını sürdürüyor (PHP 7.1'den beri `object` adı kullanılamıyor).


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

Framework sınıfları artık `Nette\Object`'ten türemek yerine `Nette\SmartObject` trait'ini kullanıyor; bu birkaç noktada farklılık gösterir:

- "taklit özellikleri" yalnızca `@property tür $ad` açıklaması varsa destekler
- "genişletme metotlarını" desteklemez
- "getReflection" desteklemez
- `$this->formSubmitted` gibi metotları almayı desteklemez; bunun yerine klasik PHP callback'i `[$this, 'formSubmitted']` kullanın

`Nette\Utils\Html::add()` metodunun yerini `addHtml()` ve `addText()` aldı.


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

- Dosyanın kodunu çözemediğinde `Image::from()` artık `ImageException` fırlatıyor
- `Image::getFormatFromString()` kullanımdan kaldırıldı
- `Strings::chr()` ve `normalize()` artık yalnızca UTF-8 kodlamasıyla çalışıyor
- Kod noktası geçerli aralıkta değilse `Strings::chr()` artık `Nette\InvalidArgumentException` fırlatıyor

Yükseltme

Sürüm 4.0'a Yükseltme

Gereken en düşük PHP sürümü 8.0'dır.

Nette\Utils\Reflection sınıfı, türlerle çalışmak için getParameterType(), getPropertyType() ve getReturnType() metotlarını sunuyordu. Bu metotlar, PHP'de henüz birleşim (union), kesişim (intersection) ve en yeni ayrık normal biçim türleri yokken oluşturulmuştu ve bunlarla artık doğru çalışmıyorlar. Yerlerini Type sınıfı aldı. 4.0 sürümünden itibaren bu metotlar kaldırıldı.

Nette\Utils\Html::$xhtml değişkeni kaldırıldı.

Bazı metotlardaki bayrakların yerini adlandırılmış argümanlar aldı. Özgün yazım hâlâ çalışıyor ama artık tercih edilmiyor: Json::PRETTYpretty:, Json::ESCAPE_UNICODEasciiSafe:, Json::FORCE_ARRAYforceArrays:, Arrays::grep() içindeki PREG_GREP_INVERTinvert:, Image::resize() içindeki Image::SHRINK_ONLYshrinkOnly: ve Strings::split(), match() ile matchAll() içindeki PREG_* bayrakları.

Nette\Utils\Reflection::getParameterDefaultValue() metodu kullanımdan kaldırıldı, çünkü PHP'nin kendi ReflectionParameter::getDefaultValue() metodu artık doğru çalışıyor.

RobotLoader kullanıyorsanız onu da 4. sürüme güncelleyin.

Finder

Finder, nette/utils paketine taşındı. Özgün nette/finder paketini kaldırın:

composer remove nette/finder

Linux'ta Finder artık varsayılan olarak büyük/küçük harfe duyarlı çalışıyor.

Önceki sürümde exclude() ve filter() metotları, from() ya da in() çağrısından önce mi sonra mı çağrıldıklarına göre farklı davranıyordu. Artık böyle değil; exclude() ve filter() her zaman aynı şekilde çalışıyor. from()/in() çağrısından sonra çağrılan filter() davranışını artık yeni descentFilter() metodu üstleniyor.

Finder artık Countable arayüzünü uygulamıyor.

Finder::findFiles('/f*') içinde eğik çizgiyle başlayan bir dize artık mutlak yol sayılıyor. Geçerli dizine göre göreli bir yol kastettiyseniz, bunu örneğin Finder::findFiles('./f*') ile değiştirin.

İçinde arama yaptığınız dizin yoksa, Nette\InvalidStateException fırlatılır (önceki UnexpectedValueException yerine).

Baştan yazılan Finder'ın başka neler yapabildiği Finder 4.0: kaputun altında 10 yıllık deneyim yazısında anlatılıyor.

Sürüm 3.1'e Yükseltme

  • Nette\Utils\Arrays::searchKey() metodunun adı getKeyOffset() olarak değişti
  • Nette\Utils\Callback::closure() kullanımdan kaldırıldı, yerine Closure::fromCallable() kullanın
  • Nette\Utils\Reflection::toString() fonksiyon/metot adının ardına () ekliyor
  • ext-intl yoksa Nette\Utils\Strings::toAscii() bir notice tetikliyor

Sürüm 3.0'a Yükseltme

Nette\Localization\ITranslator arayüzü değişti.

Nette\Object Nette 2.4'ten beri kullanımdan kaldırılmıştı ve Nette 3.0'da tamamen çıkarıldı, ancak nette/deprecated paketinde Nette\LegacyObject adıyla varlığını sürdürüyor (PHP 7.1'den beri object adı kullanılamıyor).

Sürüm 2.4'e Yükseltme

Framework sınıfları artık Nette\Object'ten türemek yerine Nette\SmartObject trait'ini kullanıyor; bu birkaç noktada farklılık gösterir:

  • „taklit özellikleri“ yalnızca @property tür $ad açıklaması varsa destekler
  • „genişletme metotlarını“ desteklemez
  • „getReflection“ desteklemez
  • $this->formSubmitted gibi metotları almayı desteklemez; bunun yerine klasik PHP callback'i [$this, 'formSubmitted'] kullanın

Nette\Utils\Html::add() metodunun yerini addHtml() ve addText() aldı.

Sürüm 2.3'e Yükseltme

  • Dosyanın kodunu çözemediğinde Image::from() artık ImageException fırlatıyor
  • Image::getFormatFromString() kullanımdan kaldırıldı
  • Strings::chr() ve normalize() artık yalnızca UTF-8 kodlamasıyla çalışıyor
  • Kod noktası geçerli aralıkta değilse Strings::chr() artık Nette\InvalidArgumentException fırlatıyor