PackageTrack
Sign in Get early access

nette/application

🏆 Nette Application: a full-stack component-based MVC kernel for PHP that helps you write powerful and modern web applications. Write less, have cleaner code and your work will bring you joy.

v3.3.0 16M downloads/mo #2136 most downloaded on Packagist nette/application

What this package is like to depend on

Last release 1 months ago

29 Jun 2026

Release timing varies

gaps range from 3 weeks to 10 months

Rarely documented

notes for 8 of 80 stable releases

Nothing withdrawn

no release was ever pulled

12 years old

81 releases · first in 2014

6 releases in the last 12 months

see the full history below

Release timeline

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

Releases

latest 60 of 81
  1. v3.3.0 29 Jun 2026
    Release notes

    Nette Application 3.3 modernizes the foundations: PHP 8.3+ and Latte 3.1, more reliable CSRF protection driven by the browser itself, and a default presenter mapping that finally matches the structure used throughout the documentation. It also clears out a pile of long-forgotten legacy. Please test the RC and report anything that breaks before the stable release.

    💥 Breaking Changes

    • PHP 8.3 – 8.5 and Latte 3.1 are now required
    • More reliable CSRF protection – same-origin is now verified via the browser's Sec-Fetch-Site header instead of a SameSite cookie.
    • Default presenter mapping is now App\Presentation\*\**Presenter
    • Application::processRequest() returns a Response instead of sending it itself (#350) – sending is handled by run(). This enables long-running runtimes (RoadRunner, FrankenPHP) and PSR integration.
    • Presenter::getRequest() throws instead of returning null when the presenter isn't running yet
    • LatteFactory::create() now takes ?Control – update any custom LatteFactory implementation to the new create(?Control $control = null) signature.
    • Removed {ifCurrent} – use {if isLinkCurrent('...')}.
    • Removed compatibility with old class names such as PresenterComponent and IRouter.

    ⚠️ Deprecations

    Mostly very old curiosities that few people knew existed – they still work but now emit a deprecation notice:

    • @annotations → PHP attributes: @persistent#[Persistent], @crossOrigin#[Requires(sameOrigin: false)], @deprecated#[Deprecated].
    • Array access on RouteList$router[] = new Route(...) and friends are replaced by $router->addRoute(...) / getRouters().
    • Query string in a link destinationlink('Product:detail?id=1') should pass arguments instead: link('Product:detail', ['id' => 1]).
    • Component::getParameter() second $default argument – use the ?? operator instead.
    • Some magic properties ($presenter->view, $layout, $request, $session…) – use the getters.

    ✨ New Features

    • Set the URL fragment straight from argumentslink('Product:detail', ['#' => 'reviews']) produces ...#reviews. The value is URL-encoded, must be scalar, and isn't passed on as a request parameter.
    • New Presenter::completeTemplate() – a protected method extracted from sendTemplate() that you can override to inject shared variables or set the template file before rendering.
    Open source →
  2. v3.3.0-RC 24 Jun 2026 pre-release

    Nothing published for this version

  3. v3.2.12 29 Jun 2026
    Release notes

    A hardening release. Crafted or malformed request parameters that used to slip through as uncaught 500s now degrade gracefully to 4xx. If your site gets probed by scanners – and it does – these three fixes turn a batch of "Server Error" reports into clean Bad Request / Not Found responses.

    • Self-links no longer crash on bad input – when a presenter builds a link to the current page (redirect('this'), forward('this'), isLinkCurrent('this'), typically from a language switcher) while the current URL carries a parameter that doesn't fit the action's typed signature (e.g. ?id=abc for int $id), the framework raised an uncaught InvalidLinkException (HTTP 500). It now reports a proper BadRequestException (4xx) through the new InvalidRequestParameterException. Explicitly passed bad link arguments still throw InvalidLinkException, so genuine programmer mistakes stay visible.
    • Numeric component ids no longer trigger a TypeError – a crafted query key such as ?1-foo=bar produced a numeric component id that hit getComponent()'s string type hint and threw a TypeError (HTTP 500). The id is now cast to string and the request is handled gracefully.
    • Routing panel survives weird parameters – a request like ?do[]=x could crash Tracy's routing panel during development. It now skips non-string presenter/signal/action values instead of throwing.
    Open source →
  4. v3.2.10 01 Jun 2026
    Release notes
    • Sharper phpDoc types and descriptions throughout the codebase
    • Reverted the experimental hasPresenter()/getPresenterIfExists() addition and the $throw deprecation in Component/Form::getPresenter() – the previous API behavior stays unchanged
    • {layout auto} no longer triggers infinite recursion – when used inside a referring template, the layout finder is now skipped instead of looping back on itself
    • Response and router classes now use promoted readonly properties, trimming boilerplate across Application, FileResponse, JsonResponse, RedirectResponse, TextResponse, ForwardResponse and CliRouter
    • Callback parameters in PresenterFactory, CallbackResponse and Multiplier are normalized to Closure for stronger typing
    Open source →
  5. v3.2.9 19 Dec 2025
    Release notes
    • added #[TemplateVariable]
    • LinkGenerator: throws an error when the link points to #[Requires(forward: true)]
    Open source →
  6. v3.2.8 24 Nov 2025
    Release notes
    • support for PHP 8.5
    • compatible with Latte 3.1
    • LinkGenerator: do not pass defaults of #[Parameter] (#355)
    • PresenterFactoryCallback: fixed $invalidLinkMode can't be overwritten by config #337
    Open source →
  7. v3.2.7 17 Jul 2025
    Release notes
    • Latte: added filter |absoluteUrl and {linkBase}
    • SnippetRuntime: Fixed snippets rendering when multiple templates are rendered (#349)
    • TemplateFactory: does not assign the default property to the template if it does not match the type #352
    • class Template is abstract
    • error 500: improved CSS style reset nette/tracy#581
    • optimized global function calls
    Open source →
  8. v3.2.6 10 Sep 2024
    Release notes
    • LatteExtension: added option 'locale'
    • LatteExtension: automatically passes translator to Latte\Essential\TranslatorExtension
    • support for PHP 8.4
    Open source →
  9. v3.2.5 13 May 2024
    Release notes
    • ApplicationExtension: checks the correct usage of attributes
    • Component::tryCall() throws BadRequestException
    • Multiplier::createComponent() allow to return a null (#327)
    • LatteExtension: fixed v3.2.3
    Open source →
  10. v3.2.4 12 May 2024

    Nothing published for this version

  11. v3.2.3 20 Apr 2024

    Nothing published for this version

  12. v3.2.1 11 Mar 2024

    Nothing published for this version

  13. v3.2.0 08 Feb 2024

    Nothing published for this version

  14. v3.1.15 12 May 2024

    Nothing published for this version

  15. v3.1.14 09 Oct 2023

    Nothing published for this version

  16. v3.1.13 27 Aug 2023

    Nothing published for this version

  17. v3.1.11 28 Apr 2023

    Nothing published for this version

  18. v3.1.10 17 Jan 2023

    Nothing published for this version

  19. v3.1.8 28 Nov 2022

    Nothing published for this version

  20. v3.1.7 01 Jun 2022

    Nothing published for this version

  21. v3.1.6 17 May 2022

    Nothing published for this version

  22. v3.1.5 20 Dec 2021

    Nothing published for this version

  23. v3.1.4 06 Oct 2021

    Nothing published for this version

  24. v3.1.3 02 Jun 2021

    Nothing published for this version

  25. v3.1.2 08 Feb 2021

    Nothing published for this version

  26. v3.1.1 25 Jan 2021

    Nothing published for this version

  27. v3.1.0 31 Dec 2020

    Nothing published for this version

  28. v3.0.8 25 Jan 2021

    Nothing published for this version

  29. v3.0.7 02 Nov 2020

    Nothing published for this version

  30. v3.0.6 25 Aug 2020

    Nothing published for this version

  31. v3.0.5 20 Apr 2020

    Nothing published for this version

  32. v3.0.4 22 Jan 2020

    Nothing published for this version

  33. v3.0.3 05 Jan 2020

    Nothing published for this version

  34. v3.0.2 21 Oct 2019

    Nothing published for this version

  35. v3.0.1 08 Jul 2019

    Nothing published for this version

  36. v3.0.0 03 Apr 2019

    Nothing published for this version

  37. v2.4.17 24 Nov 2020

    Nothing published for this version

  38. v2.4.16 25 Aug 2020

    Nothing published for this version

  39. v2.4.15 09 Jun 2020

    Nothing published for this version

  40. v2.4.14 19 Nov 2019

    Nothing published for this version

  41. v2.4.13 23 Nov 2018

    Nothing published for this version

  42. v2.4.12 16 May 2018

    Nothing published for this version

  43. v2.4.11 07 Mar 2018

    Nothing published for this version

  44. v2.4.10 05 Feb 2018

    Nothing published for this version

  45. v2.4.9 24 Aug 2017

    Nothing published for this version

  46. v2.4.8 16 Jul 2017

    Nothing published for this version

  47. v2.4.7 11 Jul 2017

    Nothing published for this version

  48. v2.4.6 23 May 2017

    Nothing published for this version

  49. v2.4.5 02 Feb 2017

    Nothing published for this version

  50. v2.4.4 19 Jan 2017

    Nothing published for this version

  51. v2.4.3 20 Dec 2016

    Nothing published for this version

  52. v2.4.2 27 Sep 2016

    Nothing published for this version

  53. v2.4.1 31 Jul 2016

    Nothing published for this version

  54. v2.4.0 25 Jun 2016

    Nothing published for this version

  55. v2.3.14 25 Aug 2020

    Nothing published for this version

  56. v2.3.13 17 Jun 2016

    Nothing published for this version

  57. v2.3.12 06 Apr 2016

    Nothing published for this version

  58. v2.3.11 09 Feb 2016

    Nothing published for this version

  59. v2.3.10 07 Feb 2016

    Nothing published for this version

  60. v2.3.9 20 Jan 2016

    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