Download

Install skeleton of your new application with the latest stable via Composer:
composer create-project nette/web-project
Or download as package: Nette 3.0 (requires PHP 7.1 and is compatible with PHP 7.4)

Packages

Nette is a set of standalone and reusable packages. You can use any of these packages independently from the rest of framework.

You can add a package to your application via Composer. For instance, to install the Latte use:

composer require latte/latte

The Latest Releases

Di v3.0.3 20. 1. 2020
  • CompilerExtension: added $initialization as replacement for modifying initialize() method
  • class aliases are loaded on demand #226
  • Statement: can be used as dynamic parameter #228
  • parameters: dynamic parameters are resolved
  • parameters: statements are replaced with null in Container
  • %parameters% resolves to all parameters
  • Revert "parameters can contain statements #221"
  • ContainerPanel: uses capturing

For the details you can have a look at the diff.

Php Generator v3.3.3 20. 1. 2020
  • ClassType: added new setter/getters for each type
  • VisibilityAware: added new setter/getters for each visibility
  • added Type
  • added Literal as alias for PhpLiteral
  • Dumper: dumped classes are fully qualified
  • Dumper::dumpArray() hides keys only in non-associative arrays #51

For the details you can have a look at the diff.

Latte v2.6.1 14. 1. 2020
  • fixed bugs
  • Filters::safeUrl() accepts tel: and sms: #203
  • Filters: in HTML/XML invalid UTF-8 is replaced with Unicode Replacement Character U+FFFD (instead of discarding whole output)
  • Filters: escapes and decodes ' as '

For the details you can have a look at the diff.

Security v3.0.3 14. 1. 2020
  • User: identity and authenticated state are cached, UserStorage is not called repeatedly
  • UserPanel: uses capturing

For the details you can have a look at the diff.

Schema v1.0.2 6. 1. 2020
  • Assert with optinal description #7 (#8)
  • Base::required() accepts state parameter (#16)

For the details you can have a look at the diff.

Application v3.0.3 5. 1. 2020
  • Template: added addFunction() for Latte 2.6
  • RoutingPanel: uses capturing
  • FileResponse: added some checks (#238)
  • ComponentReflection: changed way how it detects built-in types #241
  • ApplicationExtension: options scanDirs has higher priority than robotLoader
  • ApplicationExtension: always creates directory for touch file (#237)
  • Presenter: injectPrimary() params are required because $httpRequest is required. (#239)
  • updated .phpstorm.meta.php
  • uses nette/utils 3.1
  • fixed bugs reported by PHPStan

For the details you can have a look at the diff.

Latte v2.6.0 3. 1. 2020
  • added custom functions via $latte->addFunction()
  • Added optional chaining $var?->prop?->elem[1]?->call()?->item
  • Short ternary operator now requires braces around array (for future optional chaining) (BC break)
  • PhpWriter: short ternary checks if value exists
  • CachingIterator: fixed IteratorAggregate -> Iterator conversion
  • BlockMacros: check when dynamic snippet is combined with id attribute [Closes nette/application#242]
  • BlockMacros: added $snippetAttribute for custom HTML attribute with snippet id [Closes nette/application#242]
  • removed latte.php
Utils v3.1.0 3. 1. 2020
  • Strings::toAscii transliterates я/ю as ya/yu [Closes #203]
  • Helpers: added capture(), falseToNull(), getLastError(), getSuggestion()
  • FileSystem: added joinPaths(), normalizePath()
  • Strings, Validator: throw exception on invalid regexp patterns / malformed input
  • Strings: throw exception on malformed UTF-8 in webalize() and to… (#205)
  • Html: added helper htmlToText()
  • Html: added fromText() & fromHtml(), toText() & toHtml()
  • Image: added support for BMP
Tracy v2.6.6 2. 1. 2020

This is the last 2.6.x release.

  • Debugger: fixed compatibility with PHP 7.4
  • Debugger::errorHandler correctly fill-in error_get_last() when $logSeverity is used
  • dumper.js: fixed detection of recursion
  • bar.js: stopImmediatePropagation after opening/closing tab
  • FireLogger: added space in header
  • content.phtml: fixed headers in format 'A:B'

For the details you can have a look at the diff.

Forms v3.0.3 2. 1. 2020
  • HiddenField: added setNullable() and addFilter() #171
  • HiddenField: value is not converted to string #152
  • UploadControl: automatically sets MAX_FILE_SIZE #238
  • UploadControl: addRule() checks upload_max_filesize limit
  • Rules: added removeRule()
  • Form: added setHtmlAttribute()
  • BaseControl: supports setHtmlAttribute('name')
  • Validator::formatMessage() label is translated using form translator (#237)
  • added .phpstorm.meta.php
  • readme: info about netteForms.js

For the details you can have a look at the diff.

Utils v3.0.3 27. 12. 2019
  • Strings: Fix boolean return of Normalizer. (#210)
  • Html: added @​property & @​method
  • phpStan fixes
  • Image: muted warnings
  • Image: added new PHP 7.2 functions

For the details you can have a look at the diff.

Robot Loader v3.2.1 27. 12. 2019
  • $this is not available in loaded file
  • RobotLoader: Fixed the empty variadic array in addDirectory() #17
  • PhpStan fixes (#16)
  • removed support for comment //netteloader

For the details you can have a look at the diff.

Neon v3.1.0 27. 12. 2019
  • requires PHP 7.1
  • Literal cannot begin with a character : when it follows after '" to improve JSON compatibility (syntax BC break)
  • Literal cannot begin with a character - or : followed by =[{( (syntax BC break)
  • Neon syntax: deprecated keywords on/off (#41)
  • Nette syntax: literals can begins with ! (#42)
  • removed neon.php
Di v3.0.2 27. 12. 2019
  • InjectExtension: accepts native type
  • parameters can contain statements #221
  • InjectExtension: scans resolved class #218
  • SearchExtension: removes conflicting services before it starts to add them
  • Resolver.autowireArguments() fixed counting optional args
  • Resolver::autowireArguments() refactoring, added autowireArgument(), Resolver|Container replaced with callback
  • ExtensionsExtension: better exception message #219

For the details you can have a look at the diff.

Database v3.0.5 15. 12. 2019
  • ConnectionPanel: params are useless for EXPLAIN
  • DriverException: added params, ConnectionPanel shows them
  • DriverException: mimics original file&line of PDOException
  • PgSqlDriver: stop using adsrc column (#242)

For the details you can have a look at the diff.

Tracy v2.7.2 15. 12. 2019
  • Bar: added info [redirect|ajax] to panel headers
  • bar.js: stopImmediatePropagation after opening/closing tab
  • Debugger: fixed compatibility with PHP 7.4
  • Debugger: implemented support for E_COMPILE_WARNING
  • Debugger::errorHandler correctly fill-in error_get_last() when $logSeverity is used
  • refactoring, removed parameter $exit from exceptionHandler()
  • Debugger::exceptionHandler() when connection is aborted, log exception
  • FireLogger: added space in header
  • content.phtml: fixed headers in format 'A:B'
  • TracyExtension: editorMapping is null by default (#393)
  • Safe output capturing via Helpers::capture()

For the details you can have a look at the diff.

Php Generator v3.3.0 20. 11. 2019
  • supports PHP 7.4
  • added support for PHP 7.4 typed properties
  • added Printer::printArrowFunction() for new PHP 7.4 arrow functions
  • added new class Dumper
  • output better respects wrap-length #45 #47
  • default wrap-length changed to 120
  • added setType()/getType()/hasStrictTypes()/hasBracketedSyntax()/isReturnNullable() as future replacements for setTypeHint()/getTypeHint()/getStrictTypes()/getBracketedSyntax()/getReturnNullable()
Application v2.4.14 19. 11. 2019
  • supports PHP 7.4
  • composer: requires nette/utils < 3 #210
  • RoutingPanel: display exception thrown in match()
  • Template: fixed setTranslator(null) #204
  • Presenter: added support for typehint 'iterable' #203

For the details you can have a look at the diff.

Caching v3.0.1 19. 11. 2019
  • supports PHP 7.4

For the details you can have a look at the diff.

Caching v2.5.9 19. 11. 2019
  • supports PHP 7.4

For the details you can have a look at the diff.

Database v3.0.4 19. 11. 2019
  • supports PHP 7.4
  • SqlPreprocessor: INSERT with multiple arrays is key-dependent #238
  • ConnectionPanel - highlight INSERT|UPDATE|DELETE (#237)

For the details you can have a look at the diff.

Database v3.0.3 19. 11. 2019
  • SqlPreprocessor: fixed casting to string
  • Structure: foreign keys with less columns have bigger priority (#170)
  • Structure tests: driver should return also name of foreign key constraint
  • fixed typehint (#236)

For the details you can have a look at the diff.

Database v2.4.9 19. 11. 2019
  • supports PHP 7.4
  • Revert "DatabaseExtension: better detection of single/multiple definitions" #219

For the details you can have a look at the diff.

Di v2.4.16 19. 11. 2019
  • supports PHP 7.4
  • Helpers::expand() fixed expansion of dynamic parameters

For the details you can have a look at the diff.

Forms v3.0.2 19. 11. 2019
  • supports PHP 7.4
  • Validator::formatMessage() Fixed using label placeholder in validation rule with Html label (#235)
  • throwing exceptions from __toString() is allowed since PHP 7.4
  • some fixes

For the details you can have a look at the diff.

Forms v2.4.10 19. 11. 2019
  • supports PHP 7.4
  • compatibility with nette/latte v3
  • throwing exceptions from __toString() is allowed since PHP 7.4
  • Validator: method validatePattern() for UploadControl multiple (#192)

For the details you can have a look at the diff.

Utils v2.5.4 19. 11. 2019
  • supports PHP 7.4
  • throwing exceptions from __toString() is allowed since PHP 7.4
  • LegacyObject: removed deprecation warning for extension methods
  • added PhpStorm metadata for autocompletion

For the details you can have a look at the diff.

Tester v2.3.1 19. 11. 2019
  • supports PHP 7.4
  • Environment: 'file' can be undefined when is test called via register_shutdown_function() (#411)

For the details you can have a look at the diff.

Tracy v2.7.1 2. 11. 2019
  • Dumper::truncateString() fixed for ''
  • TracyExtension: 'bar' can be string #390
  • Debugger::enable() preloading via class_exists changed to require_once #389

For the details you can have a look at the diff.

Schema v1.0.1 31. 10. 2019
  • AnyOf: default value can be Schema (#12)
  • Structure: is normalized to array in normalize() #9
  • Added support for pattern() (#6)

For the details you can have a look at the diff.

Http v3.0.3 31. 10. 2019
  • HttpExtension: added support for 'http:' in CSP
  • Session: prevents warning Cannot change session cookie parameters when session is active
  • Url::parseQuery() accepts separator ;
  • IResponse: added REASON_PHRASES
  • HttpExtension: 'proxy' can be string

For the details you can have a look at the diff.

Bootstrap v3.0.1 22. 10. 2019
  • Configurator: passes RobotLoader to ApplicationExtension nette/application#227
  • Configurator::detectDebugMode() workaround for PHP bug #77722

For the details you can have a look at the diff.

Application v3.0.2 21. 10. 2019
  • Form: added disableSameSiteProtection()
  • Route: fixed bug for constant module & presenter #216
  • BadRequestException: parent exception is Throwable (#236)
  • Component, Form: added getPresenterIfExists()
  • Component, Form: deprecated hasPresenter()
  • throwing exceptions from __toString() is allowed since PHP 7.4
  • Template: removed 'final' #235
  • TemplateFactory: remove unused Loader (#232)
  • ApplicationExtension: can use external RobotLoader #227
  • added support for persistent parameters with property typehints in PHP 7.4 #230
  • RoutingPanel: Add better panel responsivity (#225)

For the details you can have a look at the diff.

Security v3.0.2 21. 10. 2019
  • Passwords: constants PASSWORD_* are strings since PHP 7.4 #35
  • User: added getAuthenticatorIfExists & getAuthorizatorIfExists()
  • User: deprecated hasAuthenticator() & hasAuthorizator()

For the details you can have a look at the diff.

Utils v3.0.2 21. 10. 2019
  • Image: fixed lost of alpha after imagecrop() #202
  • Validators: accepts URL "https://example.com/?query" #190
  • composer: added suggestion for tokenizer #187
  • Json: added ESCAPE_UNICODE
  • throwing exceptions from __toString() is allowed since PHP 7.4
  • tested against PHP 7.4
  • regexp: \z replaced with D modifier
  • FileSystem: copy: Add binary safe parameter
  • Strings: Optimalize strlen() for better performance. (#193)

For the details you can have a look at the diff.

Tracy v2.7.0 24. 9. 2019
  • Logger: added priority to the exception file name
  • TracyExtension: added getConfigSchema()
  • Dumper: hidden values are rendered with variable's type [Closes #380]
  • InfoPanel: Add information about localhost IP
  • Bluescreen: added length limit for exception message (#383)
  • BlueScreen: removed source from footer
  • Bluescreen: footer is always on bottom
  • bar: replaced attribute 'rel' with 'data-tracy-action' for closing & open-to-window links
  • tested against PHP 7.4

For the details you can have a look at the diff.

Tracy v2.6.5 24. 9. 2019
  • fixes for PHP 7.4
  • Debugger: workaround for PHP bug #77722
  • Bridge: Template line can be null. (#384)
  • BlueScreen: keysToHide respected in title #381
  • Bridge: Remove redundant <pre> and <div>.
  • Debugger::errorHandler() argument $context can be null #379
  • bar.css: fixed table width 100%

For the details you can have a look at the diff.

Latte v2.5.3 24. 9. 2019
  • Revert "BlockMacros: {define} accepts named parameters" #198 #194 #197
  • BlockMacros: block name must not start with underscore #193
  • Fix compatibility with PHP 7.4 (#199)
  • phpdoc fixes

For the details you can have a look at the diff.

Finder v2.5.1 13. 9. 2019
  • Finder: fixed extension method fallback #11

For the details you can have a look at the diff.

Tokenizer v3.1.0 13. 9. 2019
  • Revert "Stream: removed code that I don't know what is doing"
Tester v2.3.0 11. 8. 2019
  • watch mode: changed files are detected by filemtime
  • added Assert::notNull()
  • FileMutator fixes
  • test result is printed when run as a standalone script
Di v3.0.1 7. 8. 2019
  • SearchExtension: ability to add factory definitions from interfaces with method create() (#200)
  • Revert "Container: deprecated support for dynamically added services (BC break)" #203
  • ServiceDefinition: removed unnecessary $service variable #206
  • Autowiring: bug fix & tests
  • ExtensionsExtension: added extension type checking (#209)
  • fixed bugs reported by PhpStan (#212)(#211)(#210)(#208)(#207)(#213)(#214)
  • PHP 7.4 compatibility fixes

For the details you can have a look at the diff.

Latte v2.5.2 16. 7. 2019
  • FileLoader::isExpired() returns true when file doesn't exist #186
  • BlockMacros: {define} accepts named parameters #184
  • Engine: strict_types not working with no temp directory #191
  • Engine::setTempDirectory accepts null
  • Filters: removed string type hints from replace filter (#189)

For the details you can have a look at the diff.

Tracy v2.6.4 16. 7. 2019
  • bar.css: replaced all:unset with specific reset due to problems with Safari #373 #374 #364
  • bar.css: do not reset width/height of replaced elements #371
  • open-editor.sh: Path mapping before using of path.

For the details you can have a look at the diff.

Application v3.0.1 8. 7. 2019
  • Presenter: added onRender event
  • Component::redirect() removed $code from signature #220 #221
  • Generates links using UrlImmutable::withoutUserInfo() (nette/http#160)
  • Application: fixed error conditions order
  • added .phpstorm.meta.php
  • Use phpstan callable format

For the details you can have a look at the diff.

Database v3.0.2 8. 7. 2019
  • ResultSet: added workaround for PDO bug #38546 (#231)
  • SqlPreprocessor: generates IS NOT NULL (#226)
  • Revert "Table: moved caching related functionality to separate classes (#185)"
  • Structure::getBelongsToReference() return value fix
  • Selection: typefix for referencing table primary key
  • ResultSet: only format strings as floats (#228)
  • SqlBuilder: Fixed loading arguments for left join conditions (#224)
  • Use phpstan callable format (#220)

For the details you can have a look at the diff.

Forms v3.0.1 8. 7. 2019
  • BaseControl::getLabel() IHtmlString are not translated (#225)
  • BaseControl::translate() ignores IHtmlString
  • DefaultFormRenderer: Fix GET Application\UI\Form (#222)
  • DefaultFormRenderer: strict type fix (#220)
  • Use phpstan callable definitions (#216)(#223)(#224)
  • FormsExtension: uses configuration Schema

For the details you can have a look at the diff.

Security v3.0.1 8. 7. 2019
  • composer: update lower dependency
  • SecurityExtension: uses configuration Schema
  • Permission: removed useless condition (#33)

For the details you can have a look at the diff.

Http v3.0.2 8. 7. 2019
  • Session: added read_and_close configuration (#156)
  • RequestFactory: respect host set by trusted proxy (#162)
  • RequestFactory: set user and password to Url (#161)
  • UrlImmutable: added withoutUserInfo()
  • Url, UrlImmutable: includes "empty" hostname ('0') in the host URL (#159)(#158)
  • added .phpstorm.meta.php

For the details you can have a look at the diff.

Php Generator v3.2.3 5. 7. 2019
  • PsrPrinter: fixed indentation of dumps #41
  • Printer: added printUses()
  • ClassType: added hasProperty() & hasMethod()

For the details you can have a look at the diff.

See complete release notes.

Maintenance

Each version is actively maintained for a period of (at least) one year, and for two years period for critical and security issues.

During the first period, all issues can be fixed, and the end of this period is referenced as end of active support. In the next period, only critical and security related issues can be fixed. The end of this period is referenced as the end of life.

Living on the Edge

You can obtain the latest development versions from our repositories at https://github.com/nette.

Previous Versions

series requires most recent release is compatible released end of life
Nette 2.4 PHP 5.6 PHP 7.4 Jun 2016 Mar 2019
Nette 2.3 PHP 5.4 PHP 7.1 Feb 2015 Feb 2017
Nette 2.2.13.zip PHP 5.3 PHP 7.0 May 2014 May 2016
Nette 2.1.12.zip PHP 5.3 PHP 7.0 Dec 2013 Dec 2015
Nette 2.0.18 for PHP 5.3 + packages for PHP 5.2 with prefixes and without prefixes PHP 5.6 Feb 2012 Jan 2015

Older releases are available in archive.