Обновление
Обновление до версии 4.0
Минимальная требуемая версия PHP – 8.0.
Класс Nette\Utils\Reflection предоставлял для работы с типами методы
getParameterType(), getPropertyType() и getReturnType(). Эти методы
появились тогда, когда в PHP ещё не было объединённых, пересекающихся и
новейших типов в дизъюнктивной нормальной форме, с которыми они уже не
работают правильно. Их заменил класс Type. Начиная с версии
4.0 эти методы удалены.
Переменная Nette\Utils\Html::$xhtml удалена.
Флаги в некоторых методах заменены именованными аргументами.
Прежняя запись ещё работает, но больше не является предпочтительной:
Json::PRETTY → pretty:, Json::ESCAPE_UNICODE → asciiSafe:,
Json::FORCE_ARRAY → forceArrays:, 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-8Strings::chr()выбрасываетNette\InvalidArgumentException, если код символа выходит за допустимый диапазон