Mise à niveau
Passage à la version 4.0
La plupart des changements ne touchent que les auteurs de composants personnalisés ; le code ordinaire d'une application n'est pas concerné. L'histoire complète est dans l'article de blog de la sortie.
- La méthode
getComponents()renvoie désormais unarrayau lieu d'uniterable, et ses anciens arguments$deepet$filterTypelèvent maintenantNette\DeprecatedException. Ils avaient disparu de la signature dès la version 3.1, mais continuaient de fonctionner à l'exécution jusqu'à présent. Pour tout le sous-arbre, utilisezgetComponentTree(), éventuellement combiné àarray_filter()pour filtrer par type. - Les notifications d'attachement sont désormais délivrées de haut en bas : le callback
$attacheddu parent s'exécute avant celui de ses enfants, ce qui permet au parent de préparer son état, voire de retirer un enfant avant qu'il ne soit traité. L'ordre du détachement est inchangé (les enfants d'abord). - Les méthodes surchargeables
attached()etdetached()ont été supprimées ; enregistrez plutôt vos callbacks parmonitor($type, $attached, $detached). - La classe
Componentn'utilise plus le traitNette\SmartObject: l'accès magique aux propriétés a donc disparu de la classe de base (ControletBaseControlajoutent le trait eux-mêmes). - La constante dépréciée
NAME_SEPARATORa été supprimée ; utilisezNameSeparator, disponible depuis la version 3.0.3.
Passage à la version 3.0
Le constructeur de Nette\ComponentModel\Component n'était plus utilisé depuis des années et a été supprimé
dans la version 3.0. C'est une rupture de compatibilité : si vous appelez le constructeur parent dans un composant ou un
presenter, vous devez supprimer cet appel.