PackageTrack
Sign in Get early access

nette/forms

📝 Nette Forms: generating, validating and processing secure forms in PHP. Handy API, fully customizable, server & client side validation and mature design.

v3.3.0 14M downloads/mo #2221 most downloaded on Packagist nette/forms

What this package is like to depend on

Last release 1 months ago

28 Jun 2026

Release timing varies

gaps range from 2 weeks to 6 months

Rarely documented

notes for 8 of 67 stable releases

Nothing withdrawn

no release was ever pulled

12 years old

68 releases · first in 2014

4 releases in the last 12 months

see the full history below

Release timeline

68 releases · May 2014 to Jun 2026
2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 60 of 68
  1. v3.3.0 28 Jun 2026
    Release notes

    The headline of 3.3 is CSRF protection that the browser handles for you – no token, no cookie, no server-side state, and it holds even against XSS. On top of that, the confusing {formContext} / {formContainer} pair collapses into a single {form scope}, you can finally nest forms with {form detached}, and a round of housekeeping clears out long-deprecated APIs. Please test and report anything that breaks for you.

    • PHP 8.3+ and Latte 3.1.4+ are now required.

    💥 Breaking Changes

    • CSRF is now strictly same-origin. Forms validate the Sec-Fetch-Site header instead of the old SameSite cookie. The previous mechanism trusted submissions from any subdomain of the same site; the new one demands an exact origin match (scheme + host + port).
    • setValues() / setDefaults() now expect iterable|stdClass.
    • RadioList / CheckboxList: getControlPart() and getLabelPart() throw on an invalid item key instead of silently returning a nonsensical result.
    • Removed long-deprecated APIs:** DataClassGenerator, LatteRenderer, getValues(true) (use getValues('array')), and the $default parameter of getOption() (use the ?? operator), negative validation rules

    ✨ New Features

    • {form scope name} – one tag to replace the easily-confused {formContext} and {formContainer}. It pushes the form onto the stack without emitting <form>, resolving the name relatively to an active form when there is one, otherwise from the top level.
    • {form detached name} – nest forms at last. HTML forbids nested <form> tags, so detached emits an empty <form></form> up front and links every control back to it via the HTML5 form="..." attribute, no matter where they sit in the DOM.
    • addSubmit() accepts an $onSubmit callback – attach a click handler right when you create the button, without a separate ->onClick[] =.

    🗑️ Deprecations

    • A missing comma before {form} arguments – write {form name, attr=val} instead of {form name attr=val}, freeing keywords like scope/detached next to the name.
    • Several magic properties
    Open source →
  2. v3.3.0-RC 24 Jun 2026 pre-release

    Nothing published for this version

  3. v3.2.9 26 May 2026
    Release notes

    A maintenance-focused release that tightens type safety across the whole codebase, modernizes the JavaScript test stack, and turns static analysis into a non-negotiable part of the build. No API changes – just a more solid foundation under the hood.

    • Native types everywhere – filled in missing native type declarations across Container, BaseControl, Validator, Rules, Form and friends, so PHPStan (and your IDE) see the real shape of things
    • Sharper phpDoc – tightened phpDoc types and descriptions throughout, giving better autocomplete and clearer intent at every call - Reorganized a few tests and switched some over to allowCrossOrigin() for clarity
    Open source →
  4. v3.2.8 22 Nov 2025
    Release notes
    • support for PHP 8.5
    • compatible with Latte 3.1
    • CheckboxList, RadioList::getControl() return empty element when has no items
    Open source →
  5. v3.2.7 17 Jul 2025
    Release notes
    • composer: allows Latte 3.1
    • optimized global function calls
    Open source →
  6. v3.2.6 31 Mar 2025
    Release notes
    • SelectBox: correctly selects prompt #343
    • MultiChoiceControl: fixed order of selected items
    • tests: improved descriptions
    • netteForms: do not propagate 'submit' event further when the form is invalid
    • netteForms: fixed submitter property
    Open source →
  7. v3.2.5 22 Oct 2024
    Release notes
    • Container::addEmail(): added $maxLength=255 #303
    • ChoiceControl, MultiChoiceControl: disabled items are processed in getValue() instead of loadHttpData()
    • removed return type from __call() nette/utils#315
    • SelectBox: fixed 2edbd6c
    • netteForms: uses the submitter property
    Open source →
  8. v3.2.4 05 Aug 2024
    Release notes
    • Container::getValue() supports conversion to enums [Close #337]
    • UploadControl: added setNullable()
    • netteForms: rewritten to TypeScript
    • Button: is omitted from values #330
    • DefaultFormRenderer: fixed cummulate instances of Nette\HtmlStringable #335
    • Helpers::getSupportedTypes() returns array #332
    • support for PHP 8.4
    Open source →
  9. v3.2.3 05 May 2024
    Release notes
    • netteForms: modernized code
    • netteForms: reimplemented compact transmission mode via formdata event
    • netteForms: processes only elements with 'data-nette-rules'
    • netteForms: added typehints to jsDoc
    • netteForms: improved badInput reporting
    • netteForms: rule 'length' works with numbers #329
    • Form: does not show 'no associated handlers' error if the form is not submitted by the button
    • Blueprint: fixed nullable types detection
    • TextBase, HiddenField: added isNullable()
    Open source →
  10. v3.2.2 01 Apr 2024

    Nothing published for this version

  11. v3.2.1 06 Mar 2024

    Nothing published for this version

  12. v3.2.0 08 Feb 2024

    Nothing published for this version

  13. v3.1.15 21 Jan 2024

    Nothing published for this version

  14. v3.1.14 02 Nov 2023

    Nothing published for this version

  15. v3.1.12 10 Oct 2023

    Nothing published for this version

  16. v3.1.11 08 Mar 2023

    Nothing published for this version

  17. v3.1.10 19 Jan 2023

    Nothing published for this version

  18. v3.1.8 13 Oct 2022

    Nothing published for this version

  19. v3.1.7 12 May 2022

    Nothing published for this version

  20. v3.1.6 09 Nov 2021

    Nothing published for this version

  21. v3.1.5 07 Oct 2021

    Nothing published for this version

  22. v3.1.4 25 Aug 2021

    Nothing published for this version

  23. v3.1.3 03 Mar 2021

    Nothing published for this version

  24. v3.1.2 11 Feb 2021

    Nothing published for this version

  25. v3.1.1 04 Feb 2021

    Nothing published for this version

  26. v3.1.0 19 Jan 2021

    Nothing published for this version

  27. v3.0.7 02 Nov 2020

    Nothing published for this version

  28. v3.0.6 13 Jul 2020

    Nothing published for this version

  29. v3.0.5 06 Jun 2020

    Nothing published for this version

  30. v3.0.4 20 Apr 2020

    Nothing published for this version

  31. v3.0.3 02 Jan 2020

    Nothing published for this version

  32. v3.0.2 19 Nov 2019

    Nothing published for this version

  33. v3.0.1 08 Jul 2019

    Nothing published for this version

  34. v3.0.0 28 Feb 2019

    Nothing published for this version

  35. v2.4.11 06 Nov 2020

    Nothing published for this version

  36. v2.4.10 19 Nov 2019

    Nothing published for this version

  37. v2.4.9 16 Sep 2018

    Nothing published for this version

  38. v2.4.8 28 Jun 2018

    Nothing published for this version

  39. v2.4.7 07 Mar 2018

    Nothing published for this version

  40. v2.4.6 25 Aug 2017

    Nothing published for this version

  41. v2.4.5 13 Jul 2017

    Nothing published for this version

  42. v2.4.4 29 Mar 2017

    Nothing published for this version

  43. v2.4.3 20 Dec 2016

    Nothing published for this version

  44. v2.4.2 27 Sep 2016

    Nothing published for this version

  45. v2.4.1 09 Jul 2016

    Nothing published for this version

  46. v2.4.0 30 Jun 2016

    Nothing published for this version

  47. v2.3.12 21 Dec 2016

    Nothing published for this version

  48. v2.3.11 26 Sep 2016

    Nothing published for this version

  49. v2.3.10 30 Jun 2016

    Nothing published for this version

  50. v2.3.9 17 May 2016

    Nothing published for this version

  51. v2.3.8 08 Feb 2016

    Nothing published for this version

  52. v2.3.7 20 Jan 2016

    Nothing published for this version

  53. v2.3.6 19 Oct 2015

    Nothing published for this version

  54. v2.3.5 12 Oct 2015

    Nothing published for this version

  55. v2.3.4 20 Jul 2015

    Nothing published for this version

  56. v2.3.3 17 Jun 2015

    Nothing published for this version

  57. v2.3.2 06 May 2015

    Nothing published for this version

  58. v2.3.1 23 Mar 2015

    Nothing published for this version

  59. v2.3.0 20 Feb 2015

    Nothing published for this version

  60. v2.2.8 03 Dec 2015

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive