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 un array au lieu d'un iterable, et ses anciens arguments $deep et $filterType lèvent maintenant Nette\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, utilisez getComponentTree(), éventuellement combiné à array_filter() pour filtrer par type.
  • Les notifications d'attachement sont désormais délivrées de haut en bas : le callback $attached du 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() et detached() ont été supprimées ; enregistrez plutôt vos callbacks par monitor($type, $attached, $detached).
  • La classe Component n'utilise plus le trait Nette\SmartObject : l'accès magique aux propriétés a donc disparu de la classe de base (Control et BaseControl ajoutent le trait eux-mêmes).
  • La constante dépréciée NAME_SEPARATOR a été supprimée ; utilisez NameSeparator, 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.

version: 4.x