Обновление
Обновление до версии 3.3
- автоматическая защита от CSRF перешла с
isSameSite()наisFrom(FetchSite::SameOrigin)и стала строже: запросы, приходящие с поддоменов, больше не проходят - благодаря этому
addProtection()больше не нужен, потому что автоматическая защита покрывает те же случаи; в новых формах его не пишите, а из существующих спокойно удаляйте
Почему токены в сессии больше не нужны, объясняется в статье Четверть века CSRF.
Обновление до версии 3.1
getValues()возвращает только проверенные элементы; если вам нужны значения всех элементов независимо от проверки, используйте новый методgetUntrustedValues()$values, передаваемые в обработчикиonSuccessиonClick, точно так же содержат только проверенные элементы- самостоятельные формы автоматически защищены от CSRF с помощью cookie с
флагом SameSite; отправку с другого источника можно разрешить
через
allowCrossOrigin() - правило
Form::URLтеперь дополняет отсутствующий протокол значениемhttpsвместоhttp Form::addImage()переименован вaddImageButton()Checkbox::getSeparatorPrototype()переименован вgetContainerPrototype()- формы больше не создают в шаблонах переменную
$_form
Подробнее об этих изменениях в статье Новинки в Nette Forms 3.1.
Обновление до версии 3.0
- теперь все элементы формы по умолчанию необязательны (это изменение
появилось в Nette 2.4), так что
setRequired(false)можно убрать - обязательно обновите
netteForms.jsдо версии 3 (npm install nette-forms) ChoiceControl::$checkAllowedValuesиMultiChoiceControl::$checkAllowedValuesзаменены методомcheckDefaultValue()
Обновление до версии 2.4
- если у элемента есть правило через
addRule()(то есть он фактически обязателен), вы должны пометить его как обязательный и черезsetRequired(); кроме того,setRequired(false)теперь делает элемент необязательным, что заменяет ветвленияaddCondition($form::FILLED) - валидаторы
Form::EMAIL,URLиINTEGERавтоматически меняют HTML-атрибутtypeсоответственно наemail,urlиnumber - отрицательные правила проверки объявлены устаревшими; альтернатива
для
~Form::FILLED– этоForm::BLANK, а~Form::EQUALможно заменить наForm::NOT_EQUAL - внутренний параметр
doтеперь отправляется методом POST как_do, чтобы избежать конфликта - внутренние переменные с подчёркиванием, такие как
$_form, объявлены устаревшими - не забудьте обновить
netteForms.js
Обновление до версии 2.3
- внутренние методы фильтрации вроде
Nette\Forms\Controls\TextBase::filterFloatудалены - внутренние методы проверки вроде
TextBase::validateFloatперенесены вNette\Forms\Validator, как иRules::$defaultMessages - кнопки и скрытые поля порождаются без HTML-идентификатора; если вам
нужен ID, задайте его через
setHtmlId() - элементы RadioList тоже порождаются без ID; включить его можно
через
$radioList->generateId = true - фильтры, добавленные через
TextBase::addFilter(), обрабатываются во время проверки, и теперь фильтры можно добавлять к условиям:$input->addCondition(...)->addFilter(...)