Upgrade
Upgrade auf Version 3.0
Nette 3.0 ergänzt Typdeklarationen bei Methodenparametern und Rückgabewerten. Wenn Sie eine solche Methode in einer von Nette geerbten Klasse überschreiben (zum Beispiel in einem Presenter oder einer Komponente), müssen Sie dieselben Typdeklarationen ergänzen, sonst meldet PHP den Fehler “Declaration must be compatible”.
Das Interface Nette\Application\IRouter hat sich geändert. Die Methode match() gibt nun ein Array
von Parametern zurück und constructUrl() nimmt eines entgegen, statt eines Objekts
Nette\Application\Request.
Nette prüft nun, ob jedes Signal vom selben Origin gesendet wird (also von derselben Domain und Subdomain). Diese
Same-Origin-Policy ist ein kritischer Sicherheitsmechanismus, der mögliche Angriffsvektoren reduziert. Wenn Sie andere Origins
zulassen wollen, ergänzen Sie bei der Handler-Methode die Annotation @crossOrigin:
/**
* @crossOrigin
*/
public function handleXy(): void
{
}
Dasselbe gilt für das Absenden von Formularen. Wenn Sie das Absenden von anderen Origins zulassen wollen, gehen Sie so vor:
$form = new Nette\Application\UI\Form;
$form->allowCrossOrigin();
Der Konstruktor von Nette\ComponentModel\Component wurde seit Jahren nicht mehr verwendet und in Version
3.0 entfernt. Es handelt sich um einen BC Break: Wenn Sie in einer Komponente oder einem Presenter, der von
Nette\Application\UI\Presenter erbt, den Konstruktor des Vorfahren aufrufen, müssen Sie diesen Aufruf entfernen.
Upgrade auf Version 2.4
RouteundSimpleRoutererzeugen nun dasselbe Schema HTTP/HTTPS, über das die Website aufgerufen wurde. Eine Route, die ein bestimmtes Protokoll erfordert, lässt sich mit dem Schema definieren, z. B.Route('http://domain.cz/<presenter>').- Bei Parametern der render/action-Methoden vom Typ bool (also mit dem Standardwert true oder false) und bei persistenten
Parametern wird nun zwischen
falseundnullunterschieden. Ist der Parameter nicht in der URL enthalten, ist sein Wert nunnull(früherfalse). - Die von
Presenter::getReflection()zurückgegebene Klasse ist kein Nachfahre vonNette\Reflection\ClassTypemehr, undgetReflection()->getMethod()ist kein Nachfahre vonNette\Reflection\Methodmehr. - Das Flag
SECUREDundRoute::$defaultFlagssind veraltet.
Upgrade auf Version 2.3
- Routes und Presenter-Namen sind case-sensitive. Nette warnt Sie, wenn Sie bei einem Presenter-Namen die falsche Groß-/Kleinschreibung verwenden; aus Performance-Gründen wird die Maske der Route nicht geprüft, überprüfen Sie sie daher selbst.
Route::addStyle()undRoute::setStyleProperty()sind veraltet und lösen nunE_USER_DEPRECATEDaus.- Die Template-Endung
.phtmlund die alte Link-Syntax werden nicht mehr unterstützt.