Aktualizacja
Aktualizacja do wersji 4.0
Minimalna wymagana wersja PHP to 8.0.
Klasa Nette\Utils\Reflection udostępniała do pracy z typami metody getParameterType(),
getPropertyType() i getReturnType(). Metody te powstały w czasach, gdy PHP nie miało typów
sumarycznych, przecięciowych ani najnowszych typów w dysjunkcyjnej postaci normalnej, z którymi już nie działają poprawnie.
Zastąpiła je klasa Type. Od wersji 4.0 metody te zostały usunięte.
Zmienna Nette\Utils\Html::$xhtml została usunięta.
Flagi w niektórych metodach zostały zastąpione argumentami nazwanymi. Pierwotny zapis nadal działa, ale nie jest już
preferowany: Json::PRETTY → pretty:, Json::ESCAPE_UNICODE → asciiSafe:,
Json::FORCE_ARRAY → forceArrays:, PREG_GREP_INVERT w Arrays::grep() →
invert:, Image::SHRINK_ONLY w Image::resize() → shrinkOnly: oraz flagi
PREG_* w Strings::split(), match() i matchAll().
Metoda Nette\Utils\Reflection::getParameterDefaultValue() jest przestarzała, bo natywna
ReflectionParameter::getDefaultValue() działa już poprawnie.
Jeśli używasz RobotLoadera, zaktualizuj go również do wersji 4.
Finder
Finder przeniósł się do pakietu nette/utils. Usuń pierwotny pakiet nette/finder:
composer remove nette/finder
Na Linuksie Finder działa teraz domyślnie w trybie rozróżniającym wielkość liter.
W poprzedniej wersji metody exclude() i filter() zachowywały się różnie w zależności od tego,
czy zostały wywołane przed from()/in(), czy po nich. Już tak nie jest;
exclude() i filter() działają zawsze tak samo. Zachowanie filter() wywołanego po
from()/in() obsługuje teraz nowa metoda descentFilter().
Finder nie implementuje już interfejsu Countable.
String zaczynający się od ukośnika w Finder::findFiles('/f*') jest teraz uznawany za ścieżkę bezwzględną.
Jeśli chodziło Ci o ścieżkę względną od bieżącego katalogu, zastąp ją na przykład przez
Finder::findFiles('./f*').
Jeśli katalog, w którym szukasz, nie istnieje, zgłaszany jest Nette\InvalidStateException (zamiast
dotychczasowego UnexpectedValueException).
Co jeszcze potrafi przepisany Finder, opisuje artykuł Finder 4.0: 10 lat doświadczeń pod maską.
Aktualizacja do wersji 3.1
Nette\Utils\Arrays::searchKey()zmieniło nazwę nagetKeyOffset()Nette\Utils\Callback::closure()jest przestarzałe na rzeczClosure::fromCallable()Nette\Utils\Reflection::toString()dopisuje()po nazwie funkcji lub metodyNette\Utils\Strings::toAscii()zgłasza notice, gdy nie ma ext-intl
Aktualizacja do wersji 3.0
Interfejs Nette\Localization\ITranslator uległ zmianie.
Nette\Object jest przestarzały od Nette 2.4 i został usunięty w Nette 3.0, ale nadal istnieje pod nową
nazwą Nette\LegacyObject (nazwy object nie da się użyć od PHP 7.1) w pakiecie nette/deprecated.
Aktualizacja do wersji 2.4
Klasy frameworka używają teraz traitu Nette\SmartObject zamiast dziedziczyć po Nette\Object, co
różni się w kilku przypadkach:
- obsługuje “emulowane właściwości” tylko wtedy, gdy obecna jest adnotacja
@property type $name - nie obsługuje “metod rozszerzających”
- nie obsługuje “getReflection”
- nie obsługuje pozyskiwania metod w rodzaju
$this->formSubmitted; użyj zamiast tego klasycznego callbacku PHP[$this, 'formSubmitted']
Metodę Nette\Utils\Html::add() zastąpiły addHtml() i addText().
Aktualizacja do wersji 2.3
Image::from()zgłaszaImageException, gdy nie potrafi zdekodować plikuImage::getFormatFromString()jest przestarzałeStrings::chr()inormalize()działają teraz wyłącznie z kodowaniem UTF-8Strings::chr()zgłaszaNette\InvalidArgumentException, jeśli punkt kodowy nie mieści się w prawidłowym zakresie