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
versiyon: 4.x