Upgrade
Upgrade na verzi 4.0
Minimální požadovaná verze PHP je 8.0.
Třída Nette\Utils\Reflection poskytovala metody pro práci s typy getParameterType(),
getPropertyType() a getReturnType(). Metody vznikly v době, kdy PHP nemělo union, intersection nebo
nejnovější disjunctive normal form typy, se kterými už nefungují, a nahradila je třída Type. Od
verze 4.0 jsou tyto metody odstraněné.
Zrušená je proměnná Nette\Utils\Html::$xhtml.
Příznaky (flagy) v některých metodách nahradily pojmenované argumenty. Původní zápis stále funguje, ale není
preferovaný: Json::PRETTY → pretty:, Json::ESCAPE_UNICODE → asciiSafe:,
Json::FORCE_ARRAY → forceArrays:, PREG_GREP_INVERT v Arrays::grep() →
invert:, Image::SHRINK_ONLY v Image::resize() → shrinkOnly: a příznaky
PREG_* v Strings::split(), match() a matchAll().
Metoda Nette\Utils\Reflection::getParameterDefaultValue() je zastaralá, protože nativní
ReflectionParameter::getDefaultValue() už funguje správně.
Pokud používáte RobotLoader, zaktualizujte jej také na verzi 4.
Finder
Finder se přestěhoval do balíčku nette/utils, původní odstraňte:
composer remove nette/finder
Na Linuxu se nově chová v režimu case-sensitive.
V předchozí verzi platilo, že metody exclude() a filter() fungovaly jinak, když byly zavolány
před from() resp. in() a po ní. Tohle už neplatí, exclude() a
filter() fungují vždy stejně. Dřívější filter() volaný až po nahradila nová metoda
descentFilter().
Finder již neimplementuje rozhraní Countable.
Řetězec začínající lomítkem ve Finder::findFiles('/f*') se nově považuje za absolutní cestu, je potřeba
ho nahradit např. za Finder::findFiles('./f*').
Pokud adresář, ve kterém hledáte, neexistuje, vyhodí se Nette\InvalidStateException (místo
UnexpectedValueException).
Co všechno přepsaný Finder umí, popisuje článek Finder 4.0: 10 let zkušeností pod kapotou.
Upgrade na verzi 3.1
Nette\Utils\Arrays::searchKey()přejmenováno nagetKeyOffset()Nette\Utils\Callback::closure()je zastaralý ve prospěchClosure::fromCallable()Nette\Utils\Reflection::toString()přidává()za název funkce/metodyNette\Utils\Strings::toAscii()vyvolá notice, pokud není přítomen ext-intl
Upgrade na verzi 3.0
Rozhraní Nette\Localization\ITranslator bylo změněno.
Nette\Object je zastaralý od Nette 2.4 a odstraněný v Nette 3.0. Stále však existuje pod novým názvem
Nette\LegacyObject (jméno object nelze používat od PHP 7.1) v balíčku nette/deprecated.
Upgrade na verzi 2.4
Třídy frameworku nyní místo dědění od Nette\Object používají trait Nette\SmartObject,
který se liší v několika věcech:
- podporuje „emulované properties“ jen pokud je na třídě zapsaná anotace
@property typ $nazev - nepodporuje „extension methods“
- nepodporuje „getReflection“
- nepodporuje získávání metod jako
$this->formSubmitted; nahraďte za klasický PHP callback[$this, 'formSubmitted']
Metoda Nette\Utils\Html::add() byla nahrazena metodami addHtml() a addText().
Upgrade na verzi 2.3
Image::from()vyhodíImageException, když nedokáže dekódovat souborImage::getFormatFromString()je zastaraláStrings::chr()anormalize()nyní fungují pouze s kódováním UTF-8Strings::chr()vyhodíNette\InvalidArgumentException, pokud kód znaku není v platném rozsahu