Upgrade

Upgrade na verzi 3.0

Nette 3.0 doplňuje typehinty k parametrům a návratovým hodnotám metod. Pokud takovou metodu přepisujete ve třídě zděděné z Nette (například v presenteru nebo komponentě), musíte doplnit stejné typehinty, jinak PHP vyhodí chybu „Declaration must be compatible“.

Rozhraní Nette\Application\IRouter bylo změněno. Metoda match() nyní vrací a constructUrl() přijímá pole parametrů namísto objektu Nette\Application\Request.

Nette nyní kontroluje, zda je každý signál odeslán ze stejného originu (tj. ze stejné domény a subdomény). Tato same-origin policy je kritický bezpečnostní mechanismus, který pomáhá redukovat možné vektory útoku. Pokud chcete povolit další původy, přidejte k metodě obsluhující signál anotaci @crossOrigin:

/**
 * @crossOrigin
 */
public function handleXy(): void
{
}

To platí také pro odesílání formulářů. Pokud chcete povolit odeslání z jiného původu, postupujte takto:

$form = new Nette\Application\UI\Form;
$form->allowCrossOrigin();

Konstruktor Nette\ComponentModel\Component nebyl roky používán a byl odstraněn ve verzi 3.0. Je to BC break: pokud voláte rodičovský konstruktor v komponentě nebo presenteru zděděném od Nette\Application\UI\Presenter, musíte volání odstranit.

Upgrade na verzi 2.4

  • Route i SimpleRouter nyní generují v URL stejné HTTP/HTTPS schéma, s jakým se přistupuje ke stránce. Routu, která vyžaduje určitý protokol, lze zapsat se schématem, např. Route('http://domain.cz/<presenter>').
  • U parametrů typu bool použitých v render/action metodách (tj. s výchozí hodnotou true nebo false) a u persistentních parametrů se nyní rozlišuje mezi false a null. Pokud parametr v URL není uveden, jeho hodnota je nyní null (dříve false).
  • Třída, kterou vrací Presenter::getReflection(), již není potomkem Nette\Reflection\ClassType a rovněž getReflection()->getMethod() není potomkem Nette\Reflection\Method.
  • Flag SECURED a Route::$defaultFlags jsou zastaralé.

Upgrade na verzi 2.3

  • routy a názvy presenterů jsou case-sensitive. Nette vás upozorní, pokud v názvu presenteru použijete špatnou velikost písmen; masku routy z výkonnostních důvodů nekontroluje, ověřte si ji tedy ručně.
  • Route::addStyle() a Route::setStyleProperty() jsou zastaralé a nyní vyvolají E_USER_DEPRECATED.
  • přípona šablony .phtml a stará syntaxe odkazů se již nepodporují.