Mise à niveau
Mise à niveau vers la version 3.0
Nette 3.0 ajoute des déclarations de type aux paramètres et aux valeurs de retour des méthodes. Si vous redéfinissez une telle méthode dans une classe héritant de Nette (dans un presenter ou un composant, par exemple), vous devez y ajouter les mêmes déclarations de type, sans quoi PHP lève une erreur “Declaration must be compatible”.
L'interface Nette\Application\IRouter a changé. La méthode match() retourne désormais un tableau
de paramètres, et constructUrl() en accepte un, au lieu d'un objet Nette\Application\Request.
Nette vérifie désormais que chaque signal est envoyé depuis la même origine (c'est-à-dire le même domaine et le même
sous-domaine). Cette politique de même origine est un mécanisme de sécurité essentiel, qui aide à réduire les vecteurs
d'attaque possibles. Si vous voulez autoriser d'autres origines, ajoutez l'annotation @crossOrigin à la méthode de
traitement :
/**
* @crossOrigin
*/
public function handleXy(): void
{
}
Cela vaut aussi pour l'envoi des formulaires. Si vous voulez autoriser l'envoi depuis d'autres origines, procédez ainsi :
$form = new Nette\Application\UI\Form;
$form->allowCrossOrigin();
Le constructeur de Nette\ComponentModel\Component n'était plus utilisé depuis des années et a été supprimé
en version 3.0. C'est une rupture de compatibilité : si vous appelez le constructeur parent dans un composant ou un presenter
héritant de Nette\Application\UI\Presenter, vous devez retirer cet appel.
Mise à niveau vers la version 2.4
RouteetSimpleRoutergénèrent désormais le même schéma HTTP/HTTPS que celui par lequel le site a été atteint. Une route qui exige un protocole précis peut être définie avec le schéma, par ex.Route('http://domain.cz/<presenter>').- Pour les paramètres de type bool des méthodes render/action (c'est-à-dire ceux dont la valeur par défaut est true ou
false) et pour les paramètres persistants,
falseetnullsont désormais distingués. Si le paramètre est absent de l'URL, sa valeur est maintenantnull(auparavantfalse). - La classe retournée par
Presenter::getReflection()n'est plus un descendant deNette\Reflection\ClassType, etgetReflection()->getMethod()n'est plus un descendant deNette\Reflection\Method. - Le drapeau
SECUREDetRoute::$defaultFlagssont dépréciés.
Mise à niveau vers la version 2.3
- les routes et les noms de presenters sont sensibles à la casse. Nette vous avertit si vous employez une mauvaise casse dans un nom de presenter ; pour des raisons de performance, le masque de Route n'est pas vérifié, contrôlez-le donc vous-même.
Route::addStyle()etRoute::setStyleProperty()sont dépréciées et déclenchent désormaisE_USER_DEPRECATED.- l'extension de template
.phtmlet l'ancienne syntaxe des liens ne sont plus prises en charge.