Обновление

Обновление до версии 4.0

Минимальная требуемая версия PHP – 8.0.

Класс Nette\Utils\Reflection предоставлял для работы с типами методы getParameterType(), getPropertyType() и getReturnType(). Эти методы появились тогда, когда в PHP ещё не было объединённых, пересекающихся и новейших типов в дизъюнктивной нормальной форме, с которыми они уже не работают правильно. Их заменил класс Type. Начиная с версии 4.0 эти методы удалены.

Переменная Nette\Utils\Html::$xhtml удалена.

Флаги в некоторых методах заменены именованными аргументами. Прежняя запись ещё работает, но больше не является предпочтительной: Json::PRETTYpretty:, Json::ESCAPE_UNICODEasciiSafe:, Json::FORCE_ARRAYforceArrays:, PREG_GREP_INVERT в Arrays::grep()invert:, Image::SHRINK_ONLY в Image::resize()shrinkOnly:, а также флаги PREG_* в Strings::split(), match() и matchAll().

Метод Nette\Utils\Reflection::getParameterDefaultValue() объявлен устаревшим, потому что нативный ReflectionParameter::getDefaultValue() уже работает правильно.

Если вы используете RobotLoader, обновите и его до версии 4.

Finder

Finder переехал в пакет nette/utils. Удалите исходный пакет nette/finder:

composer remove nette/finder

В Linux Finder теперь по умолчанию работает с учётом регистра.

В предыдущей версии методы exclude() и filter() вели себя по-разному в зависимости от того, вызывались ли они до или после from() либо in(). Больше это не так: exclude() и filter() всегда работают одинаково. Поведение filter(), вызванного после from()/in(), теперь обеспечивает новый метод descentFilter().

Finder больше не реализует интерфейс Countable.

Строка, начинающаяся со слеша, в Finder::findFiles('/f*') теперь считается абсолютным путём. Если вы имели в виду относительный путь от текущего каталога, замените его, например, на Finder::findFiles('./f*').

Если каталог, в котором вы ищете, не существует, выбрасывается Nette\InvalidStateException (вместо прежнего UnexpectedValueException).

О том, что ещё умеет переписанный Finder, рассказывает статья Finder 4.0: 10 лет опыта под капотом.

Обновление до версии 3.1

  • Nette\Utils\Arrays::searchKey() переименован в getKeyOffset()
  • Nette\Utils\Callback::closure() объявлен устаревшим в пользу Closure::fromCallable()
  • Nette\Utils\Reflection::toString() добавляет () после имени функции или метода
  • Nette\Utils\Strings::toAscii() выдаёт notice, если отсутствует ext-intl

Обновление до версии 3.0

Интерфейс Nette\Localization\ITranslator изменился.

Nette\Object объявлен устаревшим начиная с Nette 2.4 и удалён в Nette 3.0, но он по-прежнему существует под новым именем Nette\LegacyObject (имя object использовать нельзя начиная с PHP 7.1) в пакете nette/deprecated.

Обновление до версии 2.4

Классы фреймворка теперь используют трейт Nette\SmartObject вместо наследования от Nette\Object, что отличается в нескольких случаях:

  • он поддерживает “эмулируемые свойства” только при наличии аннотации @property type $name
  • он не поддерживает “методы расширения”
  • он не поддерживает “getReflection”
  • он не поддерживает получение методов вида $this->formSubmitted; используйте вместо этого классический callback PHP [$this, 'formSubmitted']

Метод Nette\Utils\Html::add() заменён методами addHtml() и addText().

Обновление до версии 2.3

  • Image::from() выбрасывает ImageException, когда не может декодировать файл
  • Image::getFormatFromString() объявлен устаревшим
  • Strings::chr() и normalize() теперь работают только с кодировкой UTF-8
  • Strings::chr() выбрасывает Nette\InvalidArgumentException, если код символа выходит за допустимый диапазон
версия: 4.x