Upgrade
Upgrade auf Version 3.3
- der automatische Schutz vor CSRF ist von
isSameSite()aufisFrom(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.
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 MethodegetUntrustedValues()- die
$values, die den HandlernonSuccessundonClickü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::URLergänzt ein fehlendes Protokoll jetzt mithttpsstatt mithttp Form::addImage()wurde inaddImageButton()umbenanntCheckbox::getSeparatorPrototype()wurde ingetContainerPrototype()umbenannt- Formulare erzeugen in Templates nicht mehr die Variable
$_form
Mehr zu diesen Änderungen im Artikel 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.jsauf Version 3 (npm install nette-forms) ChoiceControl::$checkAllowedValuesundMultiChoiceControl::$checkAllowedValueswurden durch die MethodecheckDefaultValue()ersetzt
Upgrade auf Version 2.4
- hat ein Element eine Regel über
addRule()(ist es also faktisch ein Pflichtfeld), müssen Sie es auch übersetRequired()als Pflichtfeld kennzeichnen; außerdem machtsetRequired(false)das Element jetzt optional, was die ZweigeaddCondition($form::FILLED)ersetzt - die Validatoren
Form::EMAIL,URLundINTEGERändern das HTML-Attributtypeautomatisch aufemail,urlbzw.number - negative Validierungsregeln sind veraltet; die Alternative zu
~Form::FILLEDistForm::BLANK, und~Form::EQUALlässt sich durchForm::NOT_EQUALersetzen - der interne Parameter
dowird jetzt per POST als_dogesendet, um eine Kollision zu vermeiden - die internen Variablen mit Unterstrich wie
$_formsind veraltet - denken Sie daran,
netteForms.jszu aktualisieren
Upgrade auf Version 2.3
- die internen Methoden zum Filtern wie
Nette\Forms\Controls\TextBase::filterFloatwurden entfernt - die internen Methoden zur Validierung wie
TextBase::validateFloatsind nachNette\Forms\Validatorumgezogen, ebensoRules::$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(...)