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

Mail v3.1.1 10. 3. 2020
  • class aliases are loaded on demand
  • uses nette/utils 3.1

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

Latte v2.7.0 9. 3. 2020
  • added macros {varPrint}, {varType}, {templatePrint}, {templateType}
  • added support for types in {define block type $var}
  • added support for types in {var type $var} and {default type $var}
  • Filters: added |batch
  • optional chaining: added support for $obj->$var? and $obj::$var?
  • Preserves spaces before and after <div n:spaceless>
  • deprecated syntax {var xx} and {var $xx => ...} (BC break)
  • removed prefix I from ILoader, IHtmlString, ISnipperDriver, IMacro
Tester v2.3.2 6. 3. 2020
  • Runner: added support for CTRL-C
  • DomQuery: removed warning for invalid tags #354[Closes #416
  • Runner: pcntl_signal() can be disabled
  • Runner: ignores directory /vendor
  • fixes for PHP 7.4

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

Robot Loader v3.2.3 6. 3. 2020
  • fixed renaming on windows, when it is read at the same time #11
  • added acquireLock() and better exception messages
  • ensures that $this->classes & $this->missing are not null

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

Neon v3.1.2 4. 3. 2020
  • Encoder: correctly encodes numeric strings
  • Decoder: date-time is not decoded in keys #48

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

Neon v3.0.1 4. 3. 2020
  • Encoder: correctly encodes numeric strings
  • Decoder: date-time is not decoded in keys #48
  • Encoder: json_encode() error is escalated to exception

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

Tracy v2.7.3 23. 2. 2020
  • Info panel: Add server name by IP (#401)
  • Bluescreen: opens link to new window (#400)
  • TracyExtension: uses $initialization
  • dumper.js: fixed detection of recursion
  • BlueScreen: clickable classes in exception message
  • bar.css: better hiding of panel icons
  • TracyExtension: email accept array (#395)
  • readme: synced with documentation

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

Latte v2.7.0-RC2 23. 2. 2020
  • added support for types in {var type $var} and {default type $var}
  • added support for types in {define block type $var}
  • added macros {varType} and {templateType}
  • added macro {varPrint} and {templatePrint}
  • Filters: added batch()
  • optional chaining: added support for $obj->$var? and $obj::$var?
  • Preserves spaces before and after
  • removed prefix I from ILoader, IHtmlString, ISnipperDriver, IMacro
  • deprecated syntax {var xx} and {var $xx => ...} (BC break)
  • added Engine::VERSION_ID

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

Latte v2.6.2 23. 2. 2020
  • Filters::escapeXml() & escapeIcal: C0 charactes are replaced with Unicode Replacement Character U+FFFD
  • optional chaining: disabled for Class::$prop? & $$var?
  • custom functions reimplemented

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

Robot Loader v3.2.2 20. 2. 2020
  • saveCache() is atomic, fixed problem on Windows #11

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

Neon v3.1.1 12. 2. 2020
  • Encoder: json_encode() error is escalated to exception
  • Single quoted string accepts double '' to express one quote #45

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

Database v3.0.6 9. 2. 2020
  • Helpers: Fix dumpSql() for bool parameters (#251)
  • SqlPreprocessor: recoginzes (SELECT) UNION (SELECT) as parameteric command #248
  • SqlPreprocessor: correctly escapes scalars when parameters are not used
  • ConnectionPanel: uses capturing
  • Revert "ConnectionPanel: params are useless for EXPLAIN"
  • SqlPreprocessor: multi-insert accepts Row objects #247
  • ResultSet: muted warnings
  • Row: compatibility with operator ??

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

Php Generator v3.3.4 9. 2. 2020
  • ClassType: added removeImplement() & removeTrait() #53
  • Printer: printParameters() is public
  • Printer: added printType()
  • added Factory::fromCallable()
  • added Type::getType()

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

Utils v3.1.1 9. 2. 2020
  • Reflection::getParameterDefaultValue() supports parent::CONST nette/di#231
  • improved phpDoc
  • Image: added typeToExtension() & typeToMimeType()
  • Reflection: ensures that getType() returns ReflectionNamedType
  • Json: missing @throws JsonException (#212)
  • Image: added imagecrop() workaround because it loses transparency on ubuntu on Github Actions
  • DateTime::from(null) fixed #211
  • Html::htmlToText() decodes '
  • Strings::toAscii - simplified process when Transliterate is available

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

Application v3.0.4 22. 1. 2020
  • Presenter::restoreRequest() redirects on GET request
  • Template: added custom functions isLinkCurrent() and isModuleCurrent()
  • Presenter: added isModuleCurrent() #240 (#243)
  • RoutingPanel: fixed compatibility with new RouteList
  • uses latte 2.6
  • class aliases are loaded on demand

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

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.

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 Nov 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.