Mise à niveau
Mise à niveau vers la version 4.0
La version minimale de PHP requise est 8.0.
La classe Nette\Utils\Reflection fournissait les méthodes getParameterType(),
getPropertyType() et getReturnType() pour travailler avec les types. Ces méthodes ont vu le jour à une
époque où PHP ne connaissait ni les types union, ni les types intersection, ni la toute nouvelle forme normale disjonctive, avec
lesquels elles ne fonctionnent plus correctement. Elles ont été remplacées par la classe Type. Depuis la version 4.0, ces méthodes sont supprimées.
La variable Nette\Utils\Html::$xhtml a été supprimée.
Les drapeaux de certaines méthodes ont été remplacés par des arguments nommés. L'écriture d'origine fonctionne encore,
mais n'est plus recommandée : Json::PRETTY → pretty:, Json::ESCAPE_UNICODE →
asciiSafe:, Json::FORCE_ARRAY → forceArrays:, PREG_GREP_INVERT dans
Arrays::grep() → invert:, Image::SHRINK_ONLY dans Image::resize() →
shrinkOnly:, ainsi que les drapeaux PREG_* dans Strings::split(), match() et
matchAll().
La méthode Nette\Utils\Reflection::getParameterDefaultValue() est dépréciée, car la méthode native
ReflectionParameter::getDefaultValue() fonctionne désormais correctement.
Si vous utilisez RobotLoader, passez-le également en version 4.
Finder
Finder a rejoint le paquet nette/utils. Supprimez le paquet nette/finder d'origine :
composer remove nette/finder
Sous Linux, Finder fonctionne désormais par défaut en mode sensible à la casse.
Dans la version précédente, les méthodes exclude() et filter() se comportaient différemment selon
qu'elles étaient appelées avant ou après from() ou in(). Ce n'est plus le cas :
exclude() et filter() fonctionnent toujours de la même manière. Le comportement de
filter() appelée après from()/in() est désormais assuré par la nouvelle méthode
descentFilter().
Finder n'implémente plus l'interface Countable.
Une chaîne commençant par une barre oblique dans Finder::findFiles('/f*') est désormais considérée comme un
chemin absolu. Si vous vouliez un chemin relatif au répertoire courant, remplacez-la par exemple par
Finder::findFiles('./f*').
Si un répertoire dans lequel vous cherchez n'existe pas, une Nette\InvalidStateException est levée (au lieu de
la précédente UnexpectedValueException).
Ce que le Finder réécrit sait faire de plus est décrit dans l'article Finder 4.0 : 10 ans d'expérience sous le capot.
Mise à niveau vers la version 3.1
Nette\Utils\Arrays::searchKey()a été renommée engetKeyOffset()Nette\Utils\Callback::closure()est dépréciée au profit deClosure::fromCallable()Nette\Utils\Reflection::toString()ajoute()après le nom de la fonction ou de la méthodeNette\Utils\Strings::toAscii()déclenche une notice quand ext-intl est absente
Mise à niveau vers la version 3.0
L'interface Nette\Localization\ITranslator a changé.
Nette\Object est dépréciée depuis Nette 2.4 et a été supprimée dans Nette 3.0, mais elle existe toujours
sous le nouveau nom Nette\LegacyObject (le nom object ne peut plus être utilisé depuis PHP 7.1) dans
le paquet nette/deprecated.
Mise à niveau vers la version 2.4
Les classes du framework utilisent désormais le trait Nette\SmartObject au lieu d'hériter de
Nette\Object, ce qui diffère sur plusieurs points :
- il ne prend en charge les “propriétés émulées” que si l'annotation
@property type $nameest présente - il ne prend pas en charge les “méthodes d'extension”
- il ne prend pas en charge “getReflection”
- il ne permet pas d'obtenir des méthodes comme
$this->formSubmitted; utilisez à la place un callback PHP classique[$this, 'formSubmitted']
La méthode Nette\Utils\Html::add() a été remplacée par addHtml() et addText().
Mise à niveau vers la version 2.3
Image::from()lève uneImageExceptionquand elle ne parvient pas à décoder le fichierImage::getFormatFromString()est dépréciéeStrings::chr()etnormalize()ne fonctionnent plus qu'avec l'encodage UTF-8Strings::chr()lève uneNette\InvalidArgumentExceptionsi le point de code n'est pas dans la plage valide