Обновление

Обновление до версии 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(...)
версия: 4.x