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::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:
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