Nette Documentation Preview

syntax
Aktualizacja
************


Aktualizacja do wersji 3.3
==========================

- automatyczna ochrona przed CSRF przeszła z `isSameSite()` na `isFrom(FetchSite::SameOrigin)` i stała się surowsza: żądania przychodzące z subdomen już nie przechodzą
- dzięki temu `addProtection()` nie jest już potrzebne, bo automatyczna ochrona pokrywa te same przypadki; w nowych formularzach je pomiń, a z istniejących śmiało usuń

Dlaczego tokeny w sesji nie są już potrzebne, wyjaśnia artykuł [Ćwierć wieku CSRF |https://blog.nette.org/en/quarter-century-of-csrf].


Aktualizacja do wersji 3.1
==========================

- `getValues()` zwraca tylko zwalidowane elementy; jeśli potrzebujesz wartości wszystkich elementów niezależnie od walidacji, użyj nowej metody `getUntrustedValues()`
- `$values` przekazywane do handlerów `onSuccess` i `onClick` zawierają tak samo tylko zwalidowane elementy
- samodzielne formularze są automatycznie chronione przed CSRF za pomocą cookie z flagą SameSite; wysyłanie z innego origin możesz dopuścić metodą `allowCrossOrigin()`
- reguła `Form::URL` uzupełnia teraz brakujący protokół jako `https` zamiast `http`
- `Form::addImage()` zostało przemianowane na `addImageButton()`
- `Checkbox::getSeparatorPrototype()` zostało przemianowane na `getContainerPrototype()`
- formularze nie tworzą już w szablonach zmiennej `$_form`

Więcej o tych zmianach w artykule [Nowości w Nette Forms 3.1 |https://blog.nette.org/en/news-in-nette-forms-3-1].


Aktualizacja do wersji 3.0
==========================

- wszystkie elementy formularza są teraz domyślnie opcjonalne (ta zmiana pojawiła się w Nette 2.4), więc `setRequired(false)` możesz usunąć
- koniecznie zaktualizuj `netteForms.js` do wersji 3 (`npm install nette-forms`)
- `ChoiceControl::$checkAllowedValues` i `MultiChoiceControl::$checkAllowedValues` zostały zastąpione metodą `checkDefaultValue()`


Aktualizacja do wersji 2.4
==========================

- jeśli element ma regułę dodaną przez `addRule()` (czyli jest faktycznie obowiązkowy), musisz oznaczyć go jako obowiązkowy także przez `setRequired()`; poza tym `setRequired(false)` czyni teraz element opcjonalnym, co zastępuje gałęzie `addCondition($form::FILLED)`
- walidatory `Form::EMAIL`, `URL` i `INTEGER` automatycznie zmieniają atrybut HTML `type` odpowiednio na `email`, `url` i `number`
- negatywne reguły walidacyjne są przestarzałe; alternatywą dla `~Form::FILLED` jest `Form::BLANK`, a `~Form::EQUAL` możesz zastąpić przez `Form::NOT_EQUAL`
- wewnętrzny parametr `do` jest teraz wysyłany metodą POST jako `_do`, żeby uniknąć kolizji
- wewnętrzne zmienne z podkreśleniem, takie jak `$_form`, są przestarzałe
- pamiętaj o aktualizacji `netteForms.js`


Aktualizacja do wersji 2.3
==========================

- wewnętrzne metody filtrujące, takie jak `Nette\Forms\Controls\TextBase::filterFloat`, zostały usunięte
- wewnętrzne metody walidacyjne, takie jak `TextBase::validateFloat`, zostały przeniesione do `Nette\Forms\Validator`, podobnie jak `Rules::$defaultMessages`
- Buttony i pola Hidden są generowane bez HTML-owego ID; jeśli chcesz ID, ustaw je metodą `setHtmlId()`
- pozycje RadioList są również generowane bez ID; możesz je włączyć przez `$radioList->generateId = true`
- filtry dodane przez `TextBase::addFilter()` są przetwarzane podczas walidacji, a filtry możesz teraz dodawać do warunków: `$input->addCondition(...)->addFilter(...)`

Aktualizacja

Aktualizacja do wersji 3.3

Dlaczego tokeny w sesji nie są już potrzebne, wyjaśnia artykuł Ćwierć wieku CSRF.

Aktualizacja do wersji 3.1

Więcej o tych zmianach w artykule Nowości w Nette Forms 3.1.

Aktualizacja do wersji 3.0

Aktualizacja do wersji 2.4

Aktualizacja do wersji 2.3