[Go to site: main page, start]

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

  • Route und SimpleRouter erzeugen 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 false und null unterschieden. Ist der Parameter nicht in der URL enthalten, ist sein Wert nun null (früher false).
  • Die von Presenter::getReflection() zurückgegebene Klasse ist kein Nachfahre von Nette\Reflection\ClassType mehr, und getReflection()->getMethod() ist kein Nachfahre von Nette\Reflection\Method mehr.
  • Das Flag SECURED und Route::$defaultFlags sind 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() und Route::setStyleProperty() sind veraltet und lösen nun E_USER_DEPRECATED aus.
  • Die Template-Endung .phtml und die alte Link-Syntax werden nicht mehr unterstützt.