Nette Documentation Preview

syntax
Upgrade
*******


Upgrade auf Version 3.3
=======================

- der automatische Schutz vor CSRF ist von `isSameSite()` auf `isFrom(FetchSite::SameOrigin)` umgestiegen und strenger geworden: Requests von Subdomains kommen nicht mehr durch
- dadurch ist `addProtection()` nicht mehr nötig, denn der automatische Schutz deckt dieselben Fälle ab; lassen Sie es in neuen Formularen weg und entfernen Sie es ruhig aus den bestehenden

Warum Tokens in der Session nicht mehr nötig sind, erklärt der Artikel [Quarter Century of CSRF |https://blog.nette.org/en/quarter-century-of-csrf].


Upgrade auf Version 3.1
=======================

- `getValues()` gibt nur die validierten Elemente zurück; wenn Sie die Werte aller Elemente unabhängig von der Validierung brauchen, verwenden Sie die neue Methode `getUntrustedValues()`
- die `$values`, die den Handlern `onSuccess` und `onClick` übergeben werden, enthalten ebenfalls nur die validierten Elemente
- eigenständige Formulare sind über ein Cookie mit dem Flag SameSite automatisch vor CSRF geschützt; das Absenden von einem anderen Origin erlauben Sie über `allowCrossOrigin()`
- die Regel `Form::URL` ergänzt ein fehlendes Protokoll jetzt mit `https` statt mit `http`
- `Form::addImage()` wurde in `addImageButton()` umbenannt
- `Checkbox::getSeparatorPrototype()` wurde in `getContainerPrototype()` umbenannt
- Formulare erzeugen in Templates nicht mehr die Variable `$_form`

Mehr zu diesen Änderungen im Artikel [News in Nette Forms 3.1 |https://blog.nette.org/en/news-in-nette-forms-3-1].


Upgrade auf Version 3.0
=======================

- alle Formularelemente sind jetzt standardmäßig optional (diese Änderung kam in Nette 2.4), Sie können `setRequired(false)` also entfernen
- aktualisieren Sie unbedingt `netteForms.js` auf Version 3 (`npm install nette-forms`)
- `ChoiceControl::$checkAllowedValues` und `MultiChoiceControl::$checkAllowedValues` wurden durch die Methode `checkDefaultValue()` ersetzt


Upgrade auf Version 2.4
=======================

- hat ein Element eine Regel über `addRule()` (ist es also faktisch ein Pflichtfeld), müssen Sie es auch über `setRequired()` als Pflichtfeld kennzeichnen; außerdem macht `setRequired(false)` das Element jetzt optional, was die Zweige `addCondition($form::FILLED)` ersetzt
- die Validatoren `Form::EMAIL`, `URL` und `INTEGER` ändern das HTML-Attribut `type` automatisch auf `email`, `url` bzw. `number`
- negative Validierungsregeln sind veraltet; die Alternative zu `~Form::FILLED` ist `Form::BLANK`, und `~Form::EQUAL` lässt sich durch `Form::NOT_EQUAL` ersetzen
- der interne Parameter `do` wird jetzt per POST als `_do` gesendet, um eine Kollision zu vermeiden
- die internen Variablen mit Unterstrich wie `$_form` sind veraltet
- denken Sie daran, `netteForms.js` zu aktualisieren


Upgrade auf Version 2.3
=======================

- die internen Methoden zum Filtern wie `Nette\Forms\Controls\TextBase::filterFloat` wurden entfernt
- die internen Methoden zur Validierung wie `TextBase::validateFloat` sind nach `Nette\Forms\Validator` umgezogen, ebenso `Rules::$defaultMessages`
- Buttons und versteckte Felder werden ohne HTML-ID erzeugt; wenn Sie eine ID wollen, setzen Sie sie über `setHtmlId()`
- auch die Elemente von RadioList werden ohne ID erzeugt; einschalten lässt sie sich über `$radioList->generateId = true`
- Filter, die über `TextBase::addFilter()` hinzugefügt werden, werden während der Validierung verarbeitet, und Sie können Filter jetzt zu Bedingungen hinzufügen: `$input->addCondition(...)->addFilter(...)`

Upgrade

Upgrade auf Version 3.3

Warum Tokens in der Session nicht mehr nötig sind, erklärt der Artikel Quarter Century of CSRF.

Upgrade auf Version 3.1

Mehr zu diesen Änderungen im Artikel News in Nette Forms 3.1.

Upgrade auf Version 3.0

Upgrade auf Version 2.4

Upgrade auf Version 2.3