Nette Documentation Preview

syntax
Upgrade
*******


Upgrade na verzi 3.3
====================

- automatická ochrana proti CSRF přešla z `isSameSite()` na `isFrom(FetchSite::SameOrigin)` a je přísnější: requesty přicházející ze subdomén už neprojdou
- díky tomu už není potřeba `addProtection()`, protože automatická ochrana kryje totéž; u nových formulářů jej vynechte a ze stávajících ho můžete mazat

Proč už tokeny v session nejsou potřeba, vysvětluje článek [Čtvrt století s CSRF |https://blog.nette.org/cs/csrf-konecne-resi-prohlizec].


Upgrade na verzi 3.1
====================

- `getValues()` vrací jen validované prvky; pokud potřebujete hodnoty všech prvků nezávisle na validaci, použijte novou metodu `getUntrustedValues()`
- pole `$values` předávané handlerům `onSuccess` a `onClick` rovněž obsahuje jen validované prvky
- samostatně používané formuláře jsou automaticky chráněny proti CSRF pomocí cookie s příznakem SameSite; odeslání z jiné domény povolíte metodou `allowCrossOrigin()`
- pravidlo `Form::URL` nyní doplňuje chybějící protokol `https` místo `http`
- `Form::addImage()` bylo přejmenováno na `addImageButton()`
- `Checkbox::getSeparatorPrototype()` bylo přejmenováno na `getContainerPrototype()`
- formuláře již nevytvářejí v šabloně proměnnou `$_form`

Více o těchto změnách v článku [Novinky v Nette Forms 3.1 |https://blog.nette.org/cs/novinky-v-nette-forms-3-1].


Upgrade na verzi 3.0
====================

- všechny formulářové prvky jsou nyní ve výchozím nastavení volitelné (tato změna byla zavedena v Nette 2.4), takže můžete odstranit `setRequired(false)`
- nezapomeňte aktualizovat soubor `netteForms.js` na verzi 3 (`npm install nette-forms`)
- proměnné `ChoiceControl::$checkAllowedValues` a `MultiChoiceControl::$checkAllowedValues` byly nahrazeny metodou `checkDefaultValue()`


Upgrade na verzi 2.4
====================

- pokud má prvek nastaveno pravidlo přes `addRule()` (tedy je efektivně povinný), musíte jej také označit jako povinný pomocí `setRequired()`; dále `setRequired(false)` nyní udělá prvek volitelný, čímž lze nahradit větve `addCondition($form::FILLED)`
- validátory `Form::EMAIL`, `URL` a `INTEGER` automaticky mění HTML atribut `type` na `email`, `url`, resp. `number`
- negativní validační pravidla jsou zastaralá; alternativou `~Form::FILLED` je `Form::BLANK` a `~Form::EQUAL` lze nahradit za `Form::NOT_EQUAL`
- interní parametr `do` se nyní u formulářů posílaných přes POST jmenuje `_do`, aby nedocházelo ke kolizi
- interní podtržítkové proměnné jako `$_form` jsou zastaralé
- nezapomeňte aktualizovat `netteForms.js`


Upgrade na verzi 2.3
====================

- interní filtrovací metody jako `Nette\Forms\Controls\TextBase::filterFloat` byly odstraněny
- interní validační metody jako `TextBase::validateFloat` byly přesunuty do `Nette\Forms\Validator`, stejně jako `Rules::$defaultMessages`
- tlačítka a skrytá pole se generují bez HTML ID; pokud ID chcete, nastavte ho přes `setHtmlId()`
- položky RadioListu se rovněž generují bez ID; můžete ho zapnout přes `$radioList->generateId = true`
- filtry přidané přes `TextBase::addFilter()` se zpracovávají během validace a filtry nyní můžete přidávat i k podmínkám: `$input->addCondition(...)->addFilter(...)`

Upgrade

Upgrade na verzi 3.3

  • automatická ochrana proti CSRF přešla z isSameSite() na isFrom(FetchSite::SameOrigin) a je přísnější: requesty přicházející ze subdomén už neprojdou
  • díky tomu už není potřeba addProtection(), protože automatická ochrana kryje totéž; u nových formulářů jej vynechte a ze stávajících ho můžete mazat

Proč už tokeny v session nejsou potřeba, vysvětluje článek Čtvrt století s CSRF.

Upgrade na verzi 3.1

  • getValues() vrací jen validované prvky; pokud potřebujete hodnoty všech prvků nezávisle na validaci, použijte novou metodu getUntrustedValues()
  • pole $values předávané handlerům onSuccess a onClick rovněž obsahuje jen validované prvky
  • samostatně používané formuláře jsou automaticky chráněny proti CSRF pomocí cookie s příznakem SameSite; odeslání z jiné domény povolíte metodou allowCrossOrigin()
  • pravidlo Form::URL nyní doplňuje chybějící protokol https místo http
  • Form::addImage() bylo přejmenováno na addImageButton()
  • Checkbox::getSeparatorPrototype() bylo přejmenováno na getContainerPrototype()
  • formuláře již nevytvářejí v šabloně proměnnou $_form

Více o těchto změnách v článku Novinky v Nette Forms 3.1.

Upgrade na verzi 3.0

  • všechny formulářové prvky jsou nyní ve výchozím nastavení volitelné (tato změna byla zavedena v Nette 2.4), takže můžete odstranit setRequired(false)
  • nezapomeňte aktualizovat soubor netteForms.js na verzi 3 (npm install nette-forms)
  • proměnné ChoiceControl::$checkAllowedValues a MultiChoiceControl::$checkAllowedValues byly nahrazeny metodou checkDefaultValue()

Upgrade na verzi 2.4

  • pokud má prvek nastaveno pravidlo přes addRule() (tedy je efektivně povinný), musíte jej také označit jako povinný pomocí setRequired(); dále setRequired(false) nyní udělá prvek volitelný, čímž lze nahradit větve addCondition($form::FILLED)
  • validátory Form::EMAIL, URL a INTEGER automaticky mění HTML atribut type na email, url, resp. number
  • negativní validační pravidla jsou zastaralá; alternativou ~Form::FILLED je Form::BLANK a ~Form::EQUAL lze nahradit za Form::NOT_EQUAL
  • interní parametr do se nyní u formulářů posílaných přes POST jmenuje _do, aby nedocházelo ke kolizi
  • interní podtržítkové proměnné jako $_form jsou zastaralé
  • nezapomeňte aktualizovat netteForms.js

Upgrade na verzi 2.3

  • interní filtrovací metody jako Nette\Forms\Controls\TextBase::filterFloat byly odstraněny
  • interní validační metody jako TextBase::validateFloat byly přesunuty do Nette\Forms\Validator, stejně jako Rules::$defaultMessages
  • tlačítka a skrytá pole se generují bez HTML ID; pokud ID chcete, nastavte ho přes setHtmlId()
  • položky RadioListu se rovněž generují bez ID; můžete ho zapnout přes $radioList->generateId = true
  • filtry přidané přes TextBase::addFilter() se zpracovávají během validace a filtry nyní můžete přidávat i k podmínkám: $input->addCondition(...)->addFilter(...)