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::PRETTYpretty:, Json::ESCAPE_UNICODEasciiSafe:, Json::FORCE_ARRAYforceArrays:, 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ę na getKeyOffset()
  • Nette\Utils\Callback::closure() jest przestarzałe na rzecz Closure::fromCallable()
  • Nette\Utils\Reflection::toString() dopisuje () po nazwie funkcji lub metody
  • Nette\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łasza ImageException, gdy nie potrafi zdekodować pliku
  • Image::getFormatFromString() jest przestarzałe
  • Strings::chr() i normalize() działają teraz wyłącznie z kodowaniem UTF-8
  • Strings::chr() zgłasza Nette\InvalidArgumentException, jeśli punkt kodowy nie mieści się w prawidłowym zakresie
wersja: 4.x