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

  • Route et SimpleRouter gé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, false et null sont désormais distingués. Si le paramètre est absent de l'URL, sa valeur est maintenant null (auparavant false).
  • La classe retournée par Presenter::getReflection() n'est plus un descendant de Nette\Reflection\ClassType, et getReflection()->getMethod() n'est plus un descendant de Nette\Reflection\Method.
  • Le drapeau SECURED et Route::$defaultFlags sont 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() et Route::setStyleProperty() sont dépréciées et déclenchent désormais E_USER_DEPRECATED.
  • l'extension de template .phtml et l'ancienne syntaxe des liens ne sont plus prises en charge.
version: 4.x