Release Notes

Mail
v3.1.0-RC

3. 6. 2019

  • added DKIM feature (#51)
  • renamed Nette\Mail\IMailer -> Mailer

DKIM can be configured via config file:

mail:
	dkim:
		domain: ...
		selector: ...
		privateKey: private.key.file
		passPhrase: ...
		testMode: ...
Mail
v3.0.1

3. 6. 2019

  • added .phpstorm.meta.php
  • Message: added support for quoted "display-name" <email> #64
  • MailExtension: added getConfigSchema()

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

Di
v3.0.0

3. 4. 2019

Features

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • autowiring via Service[] (#178)
  • added collections via tagged() and typed()
  • added SearchExtension
  • added Schema & CompilerExtension::getConfigSchema() for automatic configuration validation with PHP 7.4 support #191
  • added full validation of dynamic parameters
  • configs are normalized before merge
  • added AccessorDefinition, FactoryDefinition, LocatorDefinition & ImportedDefinition
  • Container::addService() accepts factory closures
  • Minification of metadata: added option 'di › export › types', tags and parameters
  • added Reference, object representing reference to @service of @\Class
  • better exception messages
  • Helpers::expand() expands %params% in keys [Closes nette/nette#766]
  • Helpers::expand() supports %dynamic.item% for dynamic parameters
  • Compiler, CompilerExtension: improved Loader extendability (#62)
  • ServiceDefinition::setArgument() added [Closes #171][Closes #172]
  • Processor: names of anonymous services are just numbers
  • ContainerBuilder::addDefinition(null) adds anonymous service
  • added PhpStorm metadata for autocompletion
  • added CompilerExtension::loadDefinitionsFromConfig()
  • Loader: added support for %param% in 'include' section [Closes #170][Closes phpstan/phpstan#2020]

Changes

  • removed deprecated support for inheritance 'child < parent' (BC break)
  • some classes & members marked as final (BC break)
  • Compiler: container has declare(strict_types=1)
  • removed unused PhpReflection
  • Processor::filterArguments() translates @service to object Reference
  • Nette\DI\Helpers::filterArguments() moved to Nette\DI\Config\Processor
  • Config\Processor: options 'class' & 'type', 'dynamic' & 'imported' are aliases
  • Compiler::loadDefinitions() is not static and removed first parameter (BC break)
  • Compiler::loadDefinition() is deprecated (BC break)
  • Compiler: processing of config files moved to new class Nette\DI\Config\Processor
  • ServiceDefinition divided into Definition & ServiceDefinition
  • ContainerBuilder divided into Autowiring & Resolver
  • ServiceDefinition & Statement moved to Nette\DI\Definitions namespace
  • renamed Nette\DI\Config\IAdapter -> Adapter
  • NeonAdapter: added deprecation notice for operator ?
  • removed IniAdapter (BC break) (#177)
  • ServiceBuilder::setType() & getType() as a replacements for setClass() and getClass()
  • Compiler: added configuration option 'type' as replacement for 'class'
  • ServiceDefinition::setClass() parameter $args is deprecated (BC break) (#146)
  • Compiler::loadDefinitions() renamed to loadDefinitionsFromConfig(), better deprecation messages
  • InjectExtension: tag 'inject' changed to 'nette.inject'
  • DIExtension: tag 'run' is deprecated (BC break)
  • Container: deprecated support for dynamically added services (BC break)
  • Container: removed support for statically added createService* methods (BC break)
  • Container::$meta divided to $types, $aliases, $tags & $wiring (BC break)
  • Helpers::EXTENDS_KEY & OVERWRITE replaced with PREVENT_MERGING (BC break)
Application
v3.0.0

3. 4. 2019

Features

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • uses nette/routing
  • RouteList: added addRoute() & withDomain(), withPath() and withModule()
  • Presenter: signal must be sent from the same origin unless they have annotation @crossorigin (BC break)
  • Presenter: persistent parameters are transmitted between traits (in addition to the class hierarchy) [Closes #183]
  • LatteExtension: added option 'strictTypes'
  • error template redesign
  • Application::run() counts with response
  • Component, Form: added hasPresenter(), deprecated $throw in getPresenter()
  • TemplateFactory: added onCreate event [closes #195] (#196)
  • Template: added renderToString()
  • DI extensions: are using configuration Schema

Changes

  • Changed signature of IRouter:
    • IRouter::constructUrl() accepts and match() returns array instead of Nette\Application\Request (BC break)
    • IRouter::constructUrl() accepts Nette\Http\UrlScript instead of Url
  • MicroPresenter: returns 500 instead of 404 when parameter callback is missing
  • ApplicationExtension: tag nette.presenter replaced by findByType()
  • Component::getParam() triggers deprecation warning (BC break)
  • Component::redirect() first parameter $code is deprecated (BC break)
  • TemplateFactory: filters |normalize, |toAscii, |reverse, |url and |null are deprecated
  • ComponentReflection::combineArgs() throws Nette\InvalidArgumentException and is converted to BadRequestException on higher level
  • Presenter: invalid action throws BadRequestException only during startup
  • ComponentReflection::parseAnnotation() returns NULL instead of FALSE (BC break)
  • Presenter: returns VoidResponse when has no response
  • TemplateFactory: removed $baseUri, replaced with $baseUrl
  • removed Component::getPersistentParams(), persistent params are always public properties with annotation @Persistent (BC break)
  • Presenter::error() moved to Component
  • Route: converts all scalar params to strings [Closes #185]
  • Presenter: deprecated annotation @user (BC break)
  • SimpleRouter: support for parameter 'module' is deprecated (BC break)
  • Route::$styles is deprecated (BC break)
  • Application::$maxLoop changed to non-static
  • ApplicationExtension: presenters are not autowired
Database
v3.0.1

3. 4. 2019

  • DatabaseExtension: uses configuration Schema
  • Revert "DatabaseExtension: better detection of single/multiple definitions" #219
  • ConnectionPanel: fixed bad source file nette/tracy#346

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

Http
v3.0.1

3. 4. 2019

  • DI extensions: are using configuration Schema
  • simplified code
  • Session: do not regenerate session ID when is newly created
  • Session: security options can not be bypassed
  • Session: $started changed from static to object property
  • Session: $started replaced with checking session_status() for better cooperation with the session started outside nette nette/forms#214
  • RequestFactory: added workaround [] in REMOTE_ADDR #152
  • Revert "HttpExtension: uses interfaces IRequest & IResponse instead of Request & Response (BC break) #90"
  • SessionExtension: accepts 'cookieSamesite = true'
  • Revert "Session: by default uses sameSite: Lax (BC break)"
  • HttpExtension: removed option 'sameSiteProtection', cookie 'nette-samesite' is always set
  • Session: validates configuration option names
  • SessionPanel: uses Tracy\Helpers::escapeHtml()

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

Schema
v1.0.0

3. 4. 2019

Handy library for validating data structures against a given Schema is here! :-)

Tracy
v2.6.2

3. 4. 2019

  • BlueScreen: prints request header even when apache_request_headers() is not available
  • BlueScreen: added URL to Http Request panel
  • BlueScreen: in CLI displays panel 'CLI request' instead of HTTP request & response
  • bar: uses all GET parameters when loading bar #352
  • Bar: ensures tab code in string #361
  • Debugger: shows error during rendering bar #361
  • example: removed problem with ?? and jQuery
  • bluescreen: removed reset from CSS
  • Helpers::improveException() handles error 'Call to undefined method parent::xxx()'
  • Helpers::getSource() improved escaping of cmdline arguments
  • TracyExtension: improved generated code

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

Utils
v3.0.1

26. 3. 2019

  • Reflection::getUseStatements() throw exceptions on anonymous class
  • Reflection: added 'null' to builtin types (in fact it is reserved type since PHP 7.0)
  • added Reflection::getPropertyType() (for PHP 7.4)
  • Validators: better exception message
  • Validators: added 'file', 'directory', 'class', 'interface' & mixed
  • Validators: added support for ?nullable types
  • Validators: grouped & sorted $validators
  • Validators: catches TypeError for incompatible types
  • Validator:: accepts the plus character as a valid option in numeric strings (#184)
  • added Arrays::toObject()
  • Image: fixed empty error_get_last() #183

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

Bootstrap
v3.0.0

26. 3. 2019

Features

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • added Configurator::addDynamicParameters() [Closes #35]
  • added compiler extension SearchExtension
  • added default parameter %vendorDir%

Changes

  • parameters added via addParameters() has higher priority (BC break) (#56)
  • Configurator: uses Compiler::loadConfig()
  • Configurator::$files -> $configs (BC break)
  • removed support for Nette\Environment
  • to $autowireExcludedClasses added ArrayAccess, Countable, IteratorAggregate, Traversable
Php Generator
v3.2.2

25. 3. 2019

  • Printer::setTypeResolving() adds ability to print uresolved code #31
  • Helpers::format() is preferred over formatArgs() because we have variadics :)
  • Factory: uses ReflectionNamedType
  • PhpLiteral is not final

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

Tracy
v2.5.8

13. 3. 2019

This is the last 2.5.x release.

  • bar: uses all GET parameters when loading bar #352
  • dumper: fixed putting location before dump #343
  • Helpers::improveException() handles error 'Call to undefined method parent::xxx()'
  • TracyExtension: improved generated code
  • Helpers::editorLink shows in title the whole file name

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

Http
v2.4.11

13. 3. 2019

  • Session: do not regenerate session ID when is newly created
  • HttpExtension: option 'sameSiteProtection' does not change session cookie flag 'samesite'
  • SessionExtension: added option handler to pass own SessionHandlerInterface (#146)

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

Tester
v2.2.0

11. 3. 2019

  • --watch mode recovers from errors (e.g. missing file)
  • fixes in FileMutator (during scandir() or recursive mkdir())
  • Assert::noError() throws exception when called with more than one parameter
  • added Expect for complex assertions formulation (#398)
  • Helper::purge() protection to not purge root directory (#392)
  • added method Runner::addPhpIniOption() to be able set PHP INI option from --setup script
  • added PCOV support (#396) (thanks to @trejjam)

For more information see documentation and changelog.

Robot Loader
v3.2.0

8. 3. 2019

  • requires PHP 7.1
  • uses PHP 7.1 features & declare(strict_types=1)
  • deprecated support for addDirectory($array) and excludeDirectory($array) (BC break)
  • triggers warnings when $ignoreDirs or $acceptFiles is not array (BC break)
Robot Loader
v3.1.1

1. 3. 2019

  • added refresh()
  • readme: added info about non-autoloading usage

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

Tracy
v2.6.1

1. 3. 2019

  • a lot of fixes
  • significantly reduced HTML size
  • Bar: darker ajax & redirect rows
  • Bar: reverse AJAX rows order
  • Dumper: restored global snapshot used via LIVE, added new option LAZY #344
  • Dumper: changed detection of recursive arrays
  • Dumper: prints { RECURSION } in JavaScript dump
  • TableSort: only tables with class .tracy-sortable are sortable #345
  • Bluescreen: added <!-- in file:line --> at the top of page

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

Finder
v2.5.0

28. 2. 2019

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • extension methods are implemented independently on ObjectMixin (BC break)
Forms
v3.0.0

28. 2. 2019

Features

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • added Container::setMappedType() and parameter getValues($returnType) for mapping to objects
  • netteForms: support for toggling by CSS selector, not only id (#210)
  • UploadControl: appends HTML attribute 'accept' [Closes #172]
  • SelectBox, MultiSelectBox: added getOptionAttributes() (#189)
  • BaseControl: added ability to multiple forms with different HTML ID [Closes #188]
  • DefaultFormRenderer: Add control .error class (#209)

Changes

  • Container, BaseControl: extension methods are implemented independently on ObjectMixin
  • CheckboxList: removed compatibility workaround for label vs item label (BC break)
  • SubmitButton::setValidationScope() accepts ?array; replace FALSE with [] (BC break)
  • BaseControl::getHtmlId() autoprefixes standalone forms with form name (BC break)
  • BaseControl::getHtmlId() ensures that control is attached to the form (BC break)
  • Container::addUpload() parameter $multiple is deprecated
  • Form::NUMERIC differs from INTEGER, checks whether value consists only of numbers and don't cast it to integer (BC break) [Closes #165]
  • $onClick handlers are called until form is valid (BC break)
  • BaseControl: labels are translated using form's translator (BC Break) (#58) (#141)
  • netteForms: removed support for IE < 9
  • ChoiceControl, MultiChoiceControl::$checkAllowedValues removed, use checkDefaultValue()
  • form controls are auto-optional
Routing
v3.0.0

28. 2. 2019

nette/routing was taken out nette/application

Changes

  • Router::match(Nette\Http\IRequest $httpRequest): ?array
  • Router::constructUrl(array $params, Nette\Http\UrlScript $refUrl): ?string
Http
v3.0.0

28. 2. 2019

Features

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • added support for SameSite cookie
  • Request, HttpExtension: added sameSite protection (enabled by default)
  • Session: by default uses sameSite: Lax (BC break)
  • Session: enabled PHP option use_strict_mode
  • FileUpload: added IMAGE_MIME_TYPES
  • FileUpload: Added Webp content type to isImage (#132)
  • added UrlImmutable
  • UrlScript: added getRelativePath() [Closes #45]

Changes

  • UrlScript extends from UrlImmutable (BC break)
  • Request: removed unused second parameter $query (BC break)
  • IRequest, IResponse, Url: parameters $default are deprecated (BC break)
  • HttpExtension: uses interfaces IRequest & IResponse instead of Request & Response (BC break) [Closes #90]
  • some classes & members marked as final (BC break)
  • HttpExtension: default value of secureCookie is auto (BC break)
  • Session: default values for cookie_path, cookie_domain & cookie_secure are taken from Response
  • Session::getCookieParameters() is deprecated
  • Url::parseQuery() - correctly decodes spaces and dots in keys (BC break)
  • Url: is not ignoring user & password (BC break) [Closes #63]
  • RequestFactory: removed user & password from Url (BC break)
  • Request::getReferer() returns UrlImmutable (BC break)
Nette
v2.5.0

26. 2. 2019

  • removed discontinued packages nette/deprecated & nette/reflection
  • supports PHP 7.2 & 7.3
Latte
v2.5.0

20. 2. 2019

Features

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • Engine::setStrictTypes() adds declare(strict_types=1) to templates
  • PhpWriter: filters are called using PHP 7 features
  • added CachingIterator::__toString() (#175)

Changes

  • Compiler: removed deprecated support for inline PHP (BC break)
  • removed deprecated stuff {use} {status} {?...} |safeurl |nl2br shortNoEscape
  • HtmlNode, MacroNode: removed $isEmpty (BC break)
  • MacroTokens::fetchWord() returns NULL instead of FALSE on error (BC break)
  • TokenIterator::expectNextValue() renamed to consumeValue()
Caching
v3.0.0

20. 2. 2019

Features

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • added Cache::NAMESPACES and support for cleaning namespace in FileStorage [Closes #52]

Changes

  • FileStorage: always creates directories (#47)
  • FileStorage: removed <?php from cache file structure (BC break)
  • removed Memcached, renamed NewMemcachedStorage -> MemcachedStorage
Component Model
v3.0.0

20. 2. 2019

Features

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • Component::monitor accepts callbacks
  • added trait ArrayAccess
  • Component: More informative message in case that name is not available (#5)

Changes

  • Component::__construct($parent) is deprecated (BC break)
  • Container::getComponents(): removed child-first option (BC break)
  • Component: removed constructor (BC break)
  • Container: name must be string, int is allowed via ArrayAccess (BC break)
  • Component: attached() and detached() marked as deprecated in favor of monitoring callbacks
Database
v3.0.0

20. 2. 2019

Features

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • Helpers::loadFromFile added $onProgress
  • SqlBuilder::tryDelimite() ignores casting ::int
  • MsSql support for tables, columns, indexes, foreign keys (#215)
  • Selection: fixed insert spoiling PDO:lastInsertId (#217)
  • SqlBuilder: fixed compatiblity with PCRE2 used in PHP 7.3 [Closes #210]

Changes

  • SqlPreprocessor: scalar are always passed via bindValue() (BC break)
  • ResultSet: changed empty result return type of fetch() and fetchField() methods from FALSE to NULL [BC Break]
  • removed unused ISupplementalDriver::normalizeRow() (BC break)
  • removed unused ISupplementalDriver::formatBool()
  • ISupplementalDriver: uncommented formatDateInterval() & getPrimaryAutoincrementKey()
  • added ISupplementalDriver::initialize(), is used instead of constructor (BC break!)
  • IRowContainer: Added method fetchField() (BC break)
  • remove old sqlite2 driver (#155)
  • removed meta info unsigned, onDelete, onUpdate
  • Table: moved caching related functionality to separate classes (#185)
Mail
v3.0.0

20. 2. 2019

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • SmtpMailer: supports TLS v1.2
Neon
v3.0.0

20. 2. 2019

  • requires PHP 7.0
  • uses declare(strict_types=1)
  • uses PHP 7.0 scalar and return type hints
  • some classes & members marked as final (BC break)
  • Entity: $value is mandatory
Security
v3.0.0

20. 2. 2019

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • User::setExpiration() changed arguments 84ada184b35ac7cc19a382dc9ebb8a0e0fcc076d (BC break with fallback)
  • User: added hasAuthenticator() & hasAuthorizator(), deprecated $throw in getAuthenticator() & getAuthorizator()
  • Passwords: changed from static to object class (BC break)
  • Passwords: BCRYPT changed to default algorithm
  • SecurityExtension: added service 'passwords'
  • some classes & members marked as final (BC break)
Utils
v3.0.0

20. 2. 2019

  • requires PHP 7.1
  • uses declare(strict_types=1)
  • uses PHP 7.1 scalar and return type hints
  • Object, ObjectMixin: silently marked as deprecated
  • added PhpStorm metadata for autocompletion

Changes

  • Strings::before(), after(), indexOf() and pos() return NULL instead of FALSE if the needle was not found
  • Arrays::searchKey() returns NULL instead of FALSE when item is not found
  • Image::save() and send() throws ImageException on failure (BC break)
  • Validators::assertField: first argument has type hint array
  • Callback::toReflection() removed support for Nette\Reflection
  • some classes & members marked as final
  • ITranslator: allow multiple parameters for translated messages (#178)
  • deprecated ObjectMixin::getSuggestion()
  • MemberAccessException extends from Error (BC break)
  • removed StaticClassException, StaticClass throws Error
  • Image::save() $file cannot be null, added output()
  • DateTime: removed setTimestamp() and getTimestamp(), big int are supported in x64 PHP versions
  • Strings::findPrefix accepts only string[] (BC break)
  • Removed Nette\Object & ObjectMixin (BC break)
  • Callback::invoke() and invokeArgs() are deprecated in favor of native invocation
  • Callback: deprecated closure()
  • Validators::everyIs: first argument has typehint iterable (BC break)
  • Strings::normalize() a compare() dependency on Normalizer is optional
  • Strings::normalize() a compare() normalize strings into UTF-8 NFC (#150)
  • Filesystem::write() accept NULL in $mode parameter (#139)
Tracy
v2.6.0

17. 2. 2019

  • requires PHP 7.1
  • uses PHP 7.1 features, typehints and declare(strict_types=1)
  • Dumper: lazy loading for collapsed content (10× improves the speed of loading page with large dumps)
  • Bar: shows multiple AJAX requests rows
  • BlueScreen & Bar: implemented table sorting
  • BlueScreen: source mapping, shows original Latte template when errors occurs in compiled template
  • Dumper: added cool toggle animation
  • add PSR-3 adapters (#314)
  • BlueScreen: response header are print in table
  • Dumper: do not quote dumped keys #340
  • BlueScreen: renderToFile() returns bool to indicate if file was written by current process (#325)
  • directory structure rearranged by modules

See videos!

image

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

Tracy
v2.5.6

17. 2. 2019

  • bar.js: normalizes window.fetch arguments to Request object #323
  • bar.js: Recount hiding of labels when resized (#337)
  • bar.js: appends <div id=tracy-debug> into BODY #335
  • refactoring: used ES6 let
  • eslint: unified arrow function syntax
  • dumper.js: fixed counting collapseCount
  • toggle: disables selection for toggle labels
  • composer.json: compatible with nette/di 3.0 & tester 2.0

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

Tokenizer
v3.0.0

5. 2. 2019

Deprecated Nette\Utils\Tokenizer & TokenIterator and added new Nette\Tokenizer\Tokenizer and Nette\Tokenizer\Stream that represents tokens as objects Nette\Tokenizer\Token instead of arrays.

  • requires PHP 7.1
  • uses PHP 7.1 features
  • added PHP 7.1 scalar and return type hints
  • added declare(strict_types=1);
  • added Stream::consumeToken() & consumeValue() [Closes #17]
Safe Stream
v2.4.0

5. 2. 2019

  • requires PHP 7.1
  • uses PHP 7.1 features
  • added PHP 7.1 scalar and return type hints
  • added declare(strict_types=1);
Di
v2.4.15

30. 1. 2019

  • compatibility with nette/php-generator 3.x #182
  • updated to nette/utils 2.5
  • ContainerBuilder: improved error messages
  • Container: removed leading __ from anonymous method names
  • Compiler: names of anonymous services are just numbers
  • Compiler::loadDefinitions() sorts definitions only if needed
  • Compiler: added option 'imported' as alias for 'dynamic'
  • CompilerExtension::validateConfig() prints 'section › value' instead of section.value in exception message
  • added PhpStorm metadata for autocompletion
  • PhpGenerator: fixed type of generated factories in Container $meta

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

Php Generator
v3.1.4

29. 11. 2018

  • Printer: fixed use statements generation

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

Php Generator
v3.2.1

29. 11. 2018

  • PhpFile: added addUse() #38
  • Printer: fixed use statements generation
  • PsrPrinter is final

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

Database
v2.4.8

26. 11. 2018

  • SqlBuilder: fixed compatiblity with PCRE2 used in PHP 7.3 #208 #210
  • PgSqlDriver: uses cache for getColumnTypes() to avoid excessive number of queries #212
  • SqlPreprocessor: enables database parameters only for SELECT, INSERT, UPDATE, DELETE, REPLACE and EXPLAIN #211
  • Connection::quote() throws exception on error (related to #202)

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

Mail
v2.4.6

26. 11. 2018

  • MailExtension: Persistent parameter is configurable (#55)
  • Embedding SVG Images in Apple Mail (#53)
  • Mail: check if the function mail() exists #52

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

Application
v2.4.13

23. 11. 2018

  • RoutingPanel: removed inline style to work with CSP
  • ComponentReflection: accepts value '1.0' as float #200
  • Presenter: added support for typehint 'iterable' [Closes #203]

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

Security
v2.4.4

23. 11. 2018

  • SecurityExtension: added service 'passwords'
  • Passwords: is not static class (forward compatibility with v3)
  • Passwords: simplified checking for invalid hash

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

Tracy
v2.5.5

3. 11. 2018

  • TracyExtension: bar panel services are not recreated #329
  • Nette Bridge: highlights whitespaces in NEON #330
  • BlueScreen: hides sensitive keys, is GDPR ready
  • Dumper: added KEYS_TO_HIDE #328
  • bar.js: added timeout on mouseover for panel
  • bar.js: removed unnecessary timeout for panel focus (on click)
  • BlueScreen: added action 'create class'
  • BlueScreen: actions are displayed, but not logged
  • added 'did you mean' for logged warning
  • added support for nonce in style-src
  • bar: send with Content-type: application/javascript (#322)
  • bar: improved localization of 'composer.lock' when custom vendor dir is used #313
  • bar: works with <base href> (#321)

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

Database
v2.4.7

16. 10. 2018

  • Selection: Fixed accidental deletion of referenced cached rows when emptyResultSet is called (#187)(#207)
  • SqlBuilder: added method resetSelect (#146)
  • Fixed Helpers::dumpResult with non-string values (#204)
  • Connection, Context: added fetchFields()
  • SqlPreprocessor: strings are always passed via bindValue() (possible BC break)
  • SqlPreprocessor: PDO::quote() returns false for ODBC driver #202
  • OdbcDriver: doesn't support meta
  • MySqlDriver: Fix PDO::ATTR_CASE (#199)
  • added Connection::getLastQueryString()
  • appveyor: is unable to start MSSQL 2008, 2012 & 2014 together

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

Tester
v2.1.0

10. 10. 2018

Minimal PHP version since this release is 7.1. That's actually the main reason for this release.

  • Internal code improvements

    • used PHP 7.1 features
    • added PHP 7.1 typehints
    • strict types usage
  • Bypass finals respects final as a literal

  • Added notification when empty code coverage report data

  • The --coverage-src option is repeatable (#388)

For more information see documentation and changelog.

Tracy
v2.5.3

24. 9. 2018

  • Helpers::improveException() supports Nette\MemberAccessException
  • dumpe(): don't call exit() in production mode
  • bar.js: repeated opening/closing of panel shifts it's position up and left #318
  • bar.js: fixed multiple panels with tracy-focused class #316
  • fixed compatibility with PHP 5.4 #317
  • bar.js: fixed checking of same origin #315

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

Tracy
v2.4.18

24. 9. 2018

This is the last 2.4.x release.

  • dumpe(): don't call exit() in production mode
  • bar.js: repeated opening/closing of panel shifts it's position up and left #318
  • bar.js: fixed multiple panels with tracy-focused class #316
  • fixed compatibility with PHP 5.4 #317
  • bar.js: fixed checking of same origin #315

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

Di
v2.4.14

18. 9. 2018

  • ContainerBuilder::resolveImplement supports polymorphism (#175)
  • Helpers::expand() supports %dynamic.item% for dynamic parameters

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

Utils
v2.5.3

18. 9. 2018

  • Callback: removes HTML from error message nette/mail#54
  • test: fixed compatiblity with PHP 7.3
  • Callback: fixed bug in is_callable($object, true) #176
  • Reflection: token_get_all() uses flag TOKEN_PARSE
  • FileSystem: better error messages

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

Utils
v2.4.10

18. 9. 2018

This release marks the end of life of the nette/utils 2.4 series

  • Callback: removes HTML from error message nette/mail#54
  • test: fixed compatiblity with PHP 7.3
  • Callback: fixed bug in is_callable($object, true) #176
  • SmartObject: better error message

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

Forms
v2.4.9

16. 9. 2018

  • BaseControl: added ability to multiple forms with different HTML ID #188
  • add Form::PATTERN_ICASE as a case-insensitive variant of Form::PATTERN; fixes #185 (#187)
  • netteForms: uses unicode RegExp if is supported
  • netteForms.js: support checking file name via pattern rule using HTML5 File API (#186)

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

Http
v2.4.10

3. 9. 2018

  • Request, HttpExtension: added sameSite protection
  • Session: added support for SameSite cookie
  • Response::setCookie() supports SameSite
  • SessionExtension: cookieSecure can be 'auto'
  • Response: removed removeDuplicateCookies() #139
  • HttpExtension: added option cookieSecure; allowed values are: true, false, auto
  • HttpExtension: allows bools in CSP policy
  • HttpExtension: fixed quotating in sections require-sri-for & sandbox #143
  • HttpExtension: added Feature-Policy header #142
  • HttpExtension: renamed csp-report to cspReportOnly (BC break)
  • fixed compatibility with PHP 7.3

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

Robot Loader
v3.1.0

29. 8. 2018

By default, RobotLoader reports errors in PHP files by throwing exception ParseError (since PHP 7.0). It can be disabled via $loader->reportParseErrors(false).

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

Tracy
v2.5.2

13. 8. 2018

  • info.panel: composer 1.7.0 lock files as no longer dist and source attributes #311

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

Tracy
v2.4.17

13. 8. 2018

  • info.panel: composer 1.7.0 lock files as no longer dist and source attributes #311

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

Php Generator
v3.2.0

9. 8. 2018

New features

  • added Printer, code from __toString moved to Printer
  • added PsrPrinter, compatible with PSR-2 and PSR-12 [Closes #30]
  • added PhpNamespace::add() [Closes #27]
  • added NameAware::cloneWithName()
  • added FunctionLike::removeParameter() & ClassType::removeMethod(), removeProperty(), removeConstant()
  • added ClassType::addMember() [Closes #35]
  • ClassType: implemented deep clone
  • ClassType: added VISIBILITY_* constants
  • PhpFile: added setStrictTypes()

Changes

  • PhpNamespace::add*() - removed checking whether class already exists - to be consistent with the rest of package (BC break)
  • FunctionLike: removed setNamespace() (BC break)
  • ClassType::getNamespace() is softly deprecated. An object can be in multiple namespaces.
  • ClassType, Method: added validate(), prevents classes and methods from declared both final and abstract [BC break] (#36)
  • __toString converts exceptions to errors
  • fine tuned generated coding style

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

Php Generator
v3.1.3

9. 8. 2018

  • ClassType::from() resolves inheriting interfaces #32
  • added ClassType::getTraitResolutions & PhpFile::getNamespaces()
  • optimizations
  • readme.md: improved

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

Php Generator
v3.0.5

9. 8. 2018

This is the last v3.0 release.

  • ClassType::from() resolves inheriting interfaces #32
  • optimizations

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

Tracy
v2.5.1

3. 7. 2018

Please make a donation at https://nette.org/donate

  • MailSender: $email can contain multiple addresses #308
  • readme.md: added browser compatibility
  • bar.js: fixed autoHideLabels() after 070309de
  • added missing Coveralls file
  • bar.js: visibility is determined by width
  • MailSender: validates email
  • typo, fixed types
  • BlueScreen: empty($ex->tracyAction) may throw exception #305

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

Tracy
v2.4.16

3. 7. 2018

  • MailSender: $email can contain multiple addresses #308
  • readme.md: added browser compatibility
  • bar.js: fixed autoHideLabels() after 070309de
  • typo, fixed types

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

Finder
v2.4.2

28. 6. 2018

  • Revert "composer: accepts nette 3.0"

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

Robot Loader
v3.0.4

28. 6. 2018

  • RobotLoader: fixed exclusion when scanned dir contains .. #13
  • phpDoc: added $var name to @param

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

Neon
v2.4.3

28. 6. 2018

  • type fixes, coding style

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

Forms
v2.4.8

28. 6. 2018

  • netteForms: DOMContentLoaded is never executed when script is loaded asynchronically
  • JSHint replaced with ESLint
  • DefaultFormRenderer, Latte: fix input name defined like array (#182)
  • Rules: added reset method (#180)
  • Validator: %label trims colon

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

Di
v2.4.13

28. 6. 2018

  • ContainerBuilder::completeStatement() improved error message
  • Helpers::autowireArguments() improved error message
  • ServiceCreationException: can alter exception message
  • names in error "Multiple services of type ..." are sorted
  • ContainerBuilder: fixed type of service

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

Tester
v2.0.2

7. 6. 2018

  • FileMutator: fixes
  • Assert::error() accepts array of E_XXXX without error message
  • DomQuery: added missing error suppression for (#385)

For more information see documentation and changelog.

Latte
v2.4.8

3. 6. 2018

  • Parser: tag name can contains : _ . - #179
  • Compiler: added 'did you mean' suggestion for n:attributes
  • Compiler: fixed error when there is no macro (#177)
  • coding style

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

Tester
v1.7.2

2. 6. 2018

  • fixed PHP 7.2 compatibility

This release is the last in the 1.x series. It is compatible with PHP 5.4 - 7.2.

The following 2.0 series, even marked as compatibility breaking, has very good compatibility, but supports PHP from version 5.6.

For more information see documentation and changelog.

Database
v2.4.6

1. 6. 2018

  • Helpers::detectTypes() added support for TIMESTAMP WITH TIME ZONE in PostgreSQL #163 (#198)
  • ResultSet: reads fraction of seconds to DateInterval (#197)
  • ActiveRow: __isset checks the existence of the relation (#196)
  • ConnectionPanel: compatibility with Tracy 2.5

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

Tracy
v2.4.15

25. 5. 2018

  • TracyExtension: added option netteMailer, when enabled Tracy send emails via Nette mailer #299
  • open-editor.js: focuses PhpStorm
  • open-editor.js: refactoring, added 'settings'
  • refactoring

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

Tracy
v2.5.0

17. 5. 2018

Please make a donation at https://nette.org/donate

New features

  • bar: panels are resizable [Closes #285]
  • added BlueScreen::addAction()
  • TracyExtension: added option netteMailer, when enabled Tracy send emails via Nette mailer #299
  • bluescreen: added action 'open file' and 'create file' which opens/creates file mentioned in exception messsage (see https://tracy.nette.org/open-files-in-ide)
  • bluescreen: added action 'fix it' which opens and fixes file
  • bluescreen: better readability of quoted part of exception message
  • bluescreen: focuses PhpStorm
  • JavaScript uses ES6
  • added Nette\Bridge

Changes, BC breaks

  • update open-in-editor scripts!
  • option netteMailer is enabled by default
  • Logger: formatMessage() & formatLogLine() changed to public static methods
  • bar: tables are 100% width
  • bar: wrap the content of panel with <div class="tracy-inner"><div class="tracy-inner-container">...
  • bar: changed coords system from right-bottom to left-top
Bootstrap
v2.4.6

17. 5. 2018

  • TracyBridge: initializes Tracy v2.5 Nette brigde
  • coding style

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

Http
v2.4.9

17. 5. 2018

  • SessionPanel: compatibility with Tracy 2.5
  • coding style
  • type fixes

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

Di
v2.4.12

17. 5. 2018

  • ContainerPanel: compatibility with Tracy 2.5
  • coding style

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

Application
v2.4.12

17. 5. 2018

  • TemplateFactory: retrieve CSP nonce from CSP-Report-Only header as a fallback (#193)
  • TemplateFactory: added onCreate event #195 (#196)
  • Presenter: do not shorten file names in exceptions
  • RoutingPanel: compatibility with Tracy 2.5
  • Presenter::error() moved to Component
  • type fixes

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

Tracy
v2.4.14

4. 5. 2018

  • bar: ignore mouseenter when button is pressed
  • bar: removed flex-wrap for floating bar
  • bar: mouseenter & mouseleave are supported by Firefox and Chrome
  • Dumper: Added support for __debugInfo() magic method via Dumper::DEBUGINFO option #135 #282
  • info.panel.html: fix undefined property in list of composer packages (#287)
  • bar: support for debug bar at top of screen AJAX fixes
  • phpDoc: added $var name to @param
  • fixing issues found by Psalm

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

Utils
v2.5.2

4. 5. 2018

  • SmartObject: better error message
  • Image: throw exception when $file and $type is null (#170)

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

Php Generator
v3.1.2

26. 4. 2018

  • Closure: chops 'uses' when are longer than WRAP_LENGTH
  • FunctionLike: chops parameters when are longer than WRAP_LENGTH #28
  • Helpers::formatArgs() chops ?* parameters when are longer than WRAP_LENGTH
  • Helpers: changed WRAP_LENGTH to 100, added INDENT_LENGTH
  • added Helpers::tabsToSpaces()

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

Php Generator
v3.0.4

26. 4. 2018

  • Closure: chops 'uses' when are longer than WRAP_LENGTH
  • FunctionLike: chops parameters when are longer than WRAP_LENGTH #28
  • Helpers::formatArgs() chops ?* parameters when are longer than WRAP_LENGTH
  • Helpers: changed WRAP_LENGTH to 100, added INDENT_LENGTH
  • added Helpers::tabsToSpaces()

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

Php Generator
v2.6.4

26. 4. 2018

This is the last v2.x release.

  • Closure: chops 'uses' when are longer than WRAP_LENGTH
  • FunctionLike: chops parameters when are longer than WRAP_LENGTH #28
  • Helpers::formatArgs() chops ?* parameters when are longer than WRAP_LENGTH
  • Helpers: changed WRAP_LENGTH to 100, added INDENT_LENGTH
  • added Helpers::tabsToSpaces()
  • travis: added PHP 7.2

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

Mail
v2.4.5

14. 4. 2018

  • SmtpMailer: $error may not be filled

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

Security
v2.4.3

2. 4. 2018

  • Permission: used native callback invocation
  • improved typehints
  • SecurityExtension: used setFactory() instead of misused setClass()

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

Php Generator
v3.0.3

2. 4. 2018

  • added type hints, type fixes
  • phpDoc: added $var name to @param

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

Php Generator
v3.1.1

2. 4. 2018

  • added type hints, type fixes
  • phpDoc: added $var name to @param

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

Di
v2.4.11

2. 4. 2018

  • DecoratorExtension: do not decorate accessors by inner type (possible BC break)
  • ContainerBuilder: added check that accessor have no setup
  • Loader: add includes recursive limitation #164 #162
  • ContainerBuilder: added service type to ServiceCreationException (#151)

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

Tracy
v2.4.13

23. 3. 2018

Please make a donation at https://nette.org/donate

  • bar: support for debug bar at top of screen #286
  • bar: added composer packages to info panel
  • bar: Allow adding of custom icons to panel header (#276)
  • added Debugger::$showFireLogger #267
  • supports Content-Security-Policy-Report-Only
  • bar.js: fixed nonce reading when attribute is not exposed

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

Caching
v2.5.8

21. 3. 2018

  • fixed compatiblity with nette/object 2.5
  • phpDoc: added $var name to @param
  • phpDoc: removed inherited docs

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

Component Model
v2.4.0

20. 3. 2018

  • Component::monitor() accepts callbacks
  • Component: attached() and detached() marked as deprecated in favor of monitoring callbacks
  • added trait ArrayAccess
  • Component::__construct($parent, $name) is deprecated (BC break)
Http
v2.4.8

15. 3. 2018

  • HttpExtension: allow setup CSP in restrictive and report mode at the same time #136 #135
  • Session: don't call session_set_cookie_params() when values was not changed #134 #23
  • Session: session id cookie is checked only if it was not regenerated #133 #129

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

Forms
v2.4.7

7. 3. 2018

  • ChoiceControl, MultiChoiceControl: added checkDefaultValue() as replacement for $checkAllowedValues (#151)
  • Validator: method validatePattern() for FileUpload uses file name (#175)
  • netteForms.js: conforms with PHP FLOAT validation (#174)
  • examples: bootstrap updated

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

Application
v2.4.11

7. 3. 2018

  • added Request::VARYING for request that must not be canonicalized via 301
  • Presenter: added $onStartup
  • ErrorPresenter: renders error.phtml only in HTML
  • Route: change inflectors visibility to public (#192)

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

Tracy
v2.4.12

28. 2. 2018

  • bar: floating panel is focused on mousedown instead of on mouseover (BC break in behavior) #269
  • bar: panel zIndex is stored in session
  • bar: added Tracy.panelZIndex
  • bar: fixed z-index issue when some panels are already in FLOAT mode when the page is loaded. #269
  • bar.css: supports <small>
  • examples: improved fatal-error.php to be fatal in PHP 7

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

Utils
v2.5.0

17. 2. 2018

  • deprecated Nette\Object renamed to Nette\LegacyObject (to avoid fatal error in PHP 7.2)
  • usage of Nette\Object triggers notice or exception
  • removed stuff deprecated in v2.4
Tester
v2.0.1

7. 2. 2018

  • fixed FileMutator

For more information see documentation and changelog.

Utils
v2.4.9

6. 2. 2018

  • FileSystem::rename() fix renaming file/directory if only case changes (#155)
  • Added Html::removeAttributes() - removing multiple attributes (#161)
  • Reflection::getParameterDefaultValue: fix constant visibility handling (php 7.1) (#156)
  • PHPStan: fixed some issues
  • Object, ObjectMixin: silently marked as deprecated

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

Robot Loader
v3.0.3

6. 2. 2018

  • throws exception when is unable to create temp directory

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

Robot Loader
v2.4.4

6. 2. 2018

  • throws exception when is unable to create temp directory

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

Php Generator
v3.0.2

6. 2. 2018

  • PhpNamespace: added support for PHP 7.2 type 'object'

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

Mail
v2.4.4

6. 2. 2018

  • Message: fixed wrong content type for .eml files added as attachment #47
  • SmtpMailer: allow setting the client name through config (#46)
  • SmtpSender: Better handling of exceptions thrown when building the message (#43)
  • travis: added PHP 7.2

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

Latte
v2.4.7

6. 2. 2018

Please make a donation at https://nette.org/donate

  • FileLoader: isExpired called with correct file path (#171)
  • Compiler: {$var} can be in quotes in <style>
  • TokenIterator: fixes, sync with nette/tokenizer

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

Database
v2.4.5

6. 2. 2018

  • fixed PHP 7.2 compatibility (#190)
  • SqlBuilder: UPDATE supports ORDER BY (#179)
  • NDBT return types changed from IRow to ActiveRow

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

Application
v2.4.10

6. 2. 2018

  • FileResponse: strict type fix for PHP 5.2
  • Template: added renderToString()

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

Tracy
v2.4.11

31. 1. 2018

  • Bar: fixed Undefined index #271
  • TracyExtension: add configuration directive maxLength #274 (#275)
  • shortcuts: added function dumpe(), shortcut for dump() & exit()
  • Better exception messages for invalid logging directory
  • Debugger::dispatch() is ignored in CLI
  • Bar: added info about OPcache
  • Bar: removed HHVM version from info panel
  • Bar: info panel counts only user defined classes/interfaces/traits
  • Debugger: added support for custom JS via $customJsFiles #265
  • Debugger: added support for custom CSS via $customCssFiles #27
  • Debugger: error handler context argument optional for compatibility with PHP 7.2 (#264)

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

Tracy
v2.4.10

5. 10. 2017

  • Bar: uses session only for redirect, AJAX and when is rendered via renderLoader()
  • added example "preload"
  • bar.js: fixed attribute nonce
  • bar: fixed iconv_strlen may return false #263
  • Debugger::detectDebugMode() check for Forwarded header existence

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

Tokenizer
v2.3.0

8. 9. 2017

  • requires PHP 5.4 and supports PHP up to 7.2
  • added new classes Nette\Tokenizer\Tokenizer & Nette\Tokenizer\Stream
    • Tokenizer::tokenize return Stream instead of array
    • token is represented by object Token instead of array
    • removed support for 'simple' mode
  • Nette\Utils\Tokenizer & Nette\Utils\TokenIterator are marked as deprecated (BC break)
Caching
v2.5.6

6. 9. 2017

  • supports PHP up to 7.2
  • Revert "SQLiteJournal: checking for extension pdo_sqlite is lazy, service cache.journal is created always"

This reverts commit 7212326, it can lead to unexpected error 500 when GC is started.

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

Di
v2.4.10

6. 9. 2017

  • supports PHP up to 7.2
  • added ServiceBuilder::setType() & getType() as a future replacements for setClass() and getClass()
  • Compiler: added configuration option 'type' as a future replacement for 'class'
  • Loader: fixed including of paths with scheme in config loader (#153)
  • ContainerLoader: better error message when is unable to create file
  • ContainerLoader: throws exception when is unable to create directory

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

Utils
v2.4.8

29. 8. 2017

  • Html: accepts IHtmlString nette/forms#160
  • Html::addText() accepts Html as setText() does
  • Reflection: added support for PHP 7.2 type 'object'
  • ArrayList: triggers notice when indexes are not integers
  • travis: compatible with PHP 7.2

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

Latte
v2.4.6

29. 8. 2017

  • supports PHP up to 7.2
  • Engine: better error message when is unable to create file
  • Engine: throws exception when is unable to create directory
  • Parser: expands <script /> to <script></script> #164
  • added |webalize (requires nette/utils)
  • added |reverse

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

Http
v2.4.7

29. 8. 2017

  • supports PHP up to 7.2
  • FileUpload: uses FileSystem
  • silenced each() deprecation notice in PHP 7.2

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

Forms
v2.4.6

29. 8. 2017

  • supports PHP up to 7.2
  • addError() by default translates messages (BC break)
  • Revert "DefaultFormRenderer: added error message translation (#145)" #162 (introduced in v2.4.4)
  • FormMacros: fix edcompatibility between n:class macro and n:name form macro. (#159)
  • added Form::reset()

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

Caching
v2.5.5

29. 8. 2017

  • added Cache::NAMESPACES and support for cleaning namespace in FileStorage #52
  • CacheExtension: throws exception when is unable to create directory

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

Bootstrap
v2.4.5

29. 8. 2017

  • supports PHP up to 7.2
  • detectDebugMode() check for Forwarded header existence (#55)
  • Configurator:getCacheDirectory() throws exception when is unable to create directory

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

Application
v2.4.9

29. 8. 2017

  • supports PHP up to 7.2
  • Route: converts all scalar params to strings #185
  • Route: fixed handling of required parameters with default value
  • ComponentReflection: 'sinces' are stored only for presenters, refactoring
  • Control: enhanced code completion for $template (#184)
  • Component::saveState() fixed compatibility with PHP 7.2

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

Tester
v2.0.0

22. 8. 2017

  • Compatibility
    • required PHP 5.6 and supports PHP up to 7.2
    • dropped support for HHVM
    • default interpreter is CLI, used to be CGI
  • Handle *Test.php as a test files too
  • Added -C option to use system-wide php.ini
  • Added --temp option
  • Last time failing tests run as first
  • Fixed FileMock in append mode
  • Added environmental variable Environment::THREAD
  • Added @phpExtension test file annotation
  • Added %w% and %% modifiers for Assert::match()
  • Assert::match() replaces modifiers by matching values in output
  • Assert::exception() prints stack trace when unexpected exception is thrown
  • TestCase::tearDown() called even after test method error
  • TestCase::run() does not accept arguments, use TestCase::runTest() instead
  • Added CodeCoverage\Collector::flush()
  • Code coverage HTML template facelift
  • (many other small fixes and improvements)

For more information see documentation and changelog.

Tracy
v2.4.9

16. 8. 2017

  • supports PHP up to 7.2
  • added Debugger::renderLoader() for faster client-side initialization
  • element <div id=tracy-debug> is created by JS
  • bar: added support for touch events
  • bar: is draggable only using logo
  • bar: all H1 tags should make panel draggable (#207)
  • dumper: added CSS for anchors
  • TracyExtension: throws exception when log directory is not writable

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

Php Generator
v3.1.0

16. 8. 2017

  • requires PHP 7.1 and supports PHP up to 7.2
  • uses PHP 7.1 type hints and constant visiblity
  • removed deprecated stuff
  • Parameter::setOptional() triggers deprecation notice
Database
v2.4.4

27. 7. 2017

  • supports PHP up to 7.2
  • SqlPreprocessor: workaround for PDO bug #74996 when looking for ? in prepared query #177
  • composer: requires nette/utils 2.4 for PHP 7.2

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

Robot Loader
v3.0.2

20. 7. 2017

  • supports PHP up to 7.2
  • saveCache() is atomic #11

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

Application
v2.4.8

16. 7. 2017

  • Presenter::$absoluteUrls fixed

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

Tokenizer
v2.2.1

14. 7. 2017

  • improved coding style

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

Tokenizer
v2.2.4

14. 7. 2017

  • coding style: fixes, lowercase true/false/null
  • @return self -> static

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

Safe Stream
v2.3.3

14. 7. 2017

  • supports PHP up to 7.2
  • coding style: fixes, lowercase true/false/null

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

Reflection
v2.4.2

14. 7. 2017

  • coding style: fixes, lowercase true/false/null
  • each() replaced with current() and next()

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

Utils
v2.4.7

14. 7. 2017

  • coding style: fixes, lowercase true/false/null
  • Image: attempt to serialize throws exception

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

Tracy
v2.4.8

14. 7. 2017

  • dumps true/false/null in lowercase
  • coding style: fixes, lowercase true/false/null
  • examples: added info about DEVELOPMENT vs DETECT mode
  • Show date/time error occured on error 500 (#258)

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

Security
v2.4.2

14. 7. 2017

  • supports PHP up to 7.2
  • coding style: fixes, lowercase true/false/null

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

Robot Loader
v2.4.3

14. 7. 2017

  • supports PHP up to 7.2
  • coding style: fixes, lowercase true/false/null

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

Robot Loader
v3.0.1

14. 7. 2017

  • coding style: fixes, lowercase true/false/null
  • default $acceptFiles & $ignoreDirs changed to arrays (BC break!)

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

Php Generator
v2.6.3

14. 7. 2017

  • supports PHP up to 7.2
  • ClassType: removed some blank lines
  • dumps true/false/null in lowercase
  • coding style: fixes, lowercase true/false/null

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

Php Generator
v3.0.1

14. 7. 2017

  • supports PHP up to 7.2
  • added support for class constants (#25)
  • dumps true/false/null in lowercase
  • coding style: fixes, lowercase true/false/null
  • ClassType: removed some blank lines

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

Neon
v2.4.2

14. 7. 2017

  • supports PHP up to 7.2
  • coding style: fixes, lowercase true/false/null

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

Mail
v2.4.3

14. 7. 2017

  • supports PHP up to 7.2
  • coding style: fixes, lowercase true/false/null

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

Latte
v2.4.5

14. 7. 2017

  • coding style: fixes, lowercase true/false/null
  • Engine::compile() fixed construction of CompileException, doesn't accept nullable type (#161)

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

Http
v2.4.6

14. 7. 2017

  • coding style: fixes, lowercase true/false/null
  • RequestFactory: when proxy is used and HTTP_X_FORWARDED_PORT is not available, uses default port #124
  • RequestFactory: test that HTTP_X_FORWARDED_PROTO doesn't change the port
  • typo
  • RequestFactory: correctly ignores not-ip values in HTTP_X_FORWARDED_FOR & REMOTE_ADDR (#122)

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

Forms
v2.4.5

14. 7. 2017

  • coding style: fixes, lowercase true/false/null
  • $onClick handlers are called with argument $values (as $onSuccess)
  • tests: improved $onSuccess & $onClick etc. tests
  • DefaultFormRenderer: translates object 'label' & 'description' #142
  • tests: added rendering + localization (#149)
  • DefaultRenderer: fix for calling renderErrors() from renderPair() which was caused by #145 (->form = NULL) (#150)
  • ControlGroup: added remove() and removeOrphans() #155
  • SelectBox: only one item can be rendered as selected at the same time

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

Finder
v2.4.1

14. 7. 2017

  • supports PHP up to 7.2
  • coding style: fixes, lowercase true/false/null
  • variadics methods accepts no arguments #5
  • folder /Finder renamed to /Utils
  • composer: accepts nette 3.0
  • @return self -> static

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

Di
v2.4.9

14. 7. 2017

  • coding style: fixes, lowercase true/false/null
  • added support for class aliases created via class_alias() #156
  • DependencyChecker: class is expired when parent/interfaces/traits was changed
  • DecoratorExtension: accepts setup syntax '$prop = val'
  • ContainerBuilder: allows ::Namespace\func as factory name
  • generated factories: fix return type, PHP does not support return type covariance (#152)
  • removed unnecessary ltrim($class, '\')

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

Database
v2.4.3

14. 7. 2017

  • fetchPairs() supports floats in keys
  • coding style: fixes, lowercase true/false/null
  • SqliteDriver::getColumns() fix regexp for autoincrement recognition (#168)
  • DatabaseExtension: added support for constants in options values
  • OciDriver: do not use meta, driver is not meta-aware

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

Component Model
v2.3.1

14. 7. 2017

  • supports PHP up to 7.2
  • coding style: fixes, lowercase true/false/null
  • @return self -> static
  • composer: accepts nette 3.0
  • renamed parameter $need -> $throw

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

Caching
v2.5.4

14. 7. 2017

  • coding style: fixes, lowercase true/false/null

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

Bootstrap
v2.4.4

14. 7. 2017

  • coding style: fixes, lowercase true/false/null

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

Application
v2.4.7

14. 7. 2017

  • coding style: fixes, lowercase true/false/null
  • Presenter: added requestToUrl(), taken out from createRequest()

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

Application
v2.4.6

29. 5. 2017

  • RoutingExtension: added support for custom single-route classes. (#162)
  • UI\Presenter::canonicalize() allows to redirect to specified destination
  • Presenter: fixed uninitialized $since #166
  • strict types fixes

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

Latte
v2.4.4

17. 5. 2017

  • n:class supports BEM (#156)
  • Filters: trim() is content type aware
  • macro n:attr expands array (#158)
  • Filters: independent on utf8_decode()
  • strict type fixes
  • fixed phpDoc

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

Tracy
v2.4.7

11. 5. 2017

  • AJAX: debug Fetch requests (#249)
  • Logger::getExceptionFile() hash contains exception class name
  • Helpers::improveException() fixed suggestion when calling undefined method of anonymous class #248
  • create-phar: leaves annotation @tracySkipLocation #254

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

Utils
v2.4.6

9. 5. 2017

  • Validators::isInRange() works with DateTime
  • Validators::isInRange() return FALSE when both limits are NULL

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

Utils
v2.4.5

30. 3. 2017

  • supports PHP up to 7.2
  • Validators::isInRange() compares strings as strings and numbers as numbers (BC break) nette/forms#146
  • Validators::isInRange() ignores NULL
  • Reflection::getReturnType() & getParameterType() supports 'parent'
  • Callback: workaround for Suhosin extension bug (#134)
  • each() replaced with current() and next()

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

Forms
v2.4.4

29. 3. 2017

  • added support for static addCondition(TRUE | FALSE)
  • netteForms.js: fixed 'Too much recursions' #143
  • BaseControl::setDisabled(FALSE) reloads HTTP value #139
  • DefaultFormRenderer: added error message translation (#145)
  • Revert "TextBase: emptyValue is removed from value in validate()" - getValue() can be called before validation
  • fixed phpDoc

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

Php Generator
v2.6.2

18. 3. 2017

  • fixed default values
  • ClassType: checks whether names are valid
  • Helpers::isNamespaceIdentifier() added $allowLeadingSlash
  • Helpers::isNamespace() -> isNamespaceIdentifier()
  • Closure::setUses() checks argument type

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

Di
v2.4.8

17. 3. 2017

  • Compiler::loadDefinitions: allow to get to existing service by class #145
  • ContainerBuilder::getByType() added argument $throw
  • DependencyChecker::isExpired() can alter $phpFiles modification times #144
  • Helpers::getReturnType() ignores 'object' and 'mixed'
  • PhpGenerator: removed unnecessary type checking in PHP 7
  • uses nette/php-generator 2.6.1 wildcards
  • ContainerBuilder: create_function() replaced with eval()

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

Http
v2.4.5

17. 3. 2017

  • Session: configuration options are normalized in setOptions() instead of configure() #121
  • SessionExtension: special value 'domain' in cookieDomain means whole domain
  • Url: added getDomain()
  • fixed phpDoc

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

Http
v2.3.9

17. 3. 2017

  • Session: configuration options are normalized in setOptions() instead of configure() #121

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

Di
v2.3.14

17. 3. 2017

  • compatibility with nette/php-generator v2.6 #150
  • ContainerBuilder: create_function() replaced with eval()
  • tests: fixed mkdir() race condition
  • each() replaced with current() and next()

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

Php Generator
v2.6.1

14. 3. 2017

  • Helpers::formatArgs() escaped \? means ?
  • Helpers::formatArgs() ...? is substitution for ?*
  • Helpers::formatArgs() refactoring

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

Php Generator
v2.6.0

24. 2. 2017

  • Checks whether names are valid [Closes #24]
  • added GlobalFunction & Closure
  • ClassType: added possibility to define trait resolution rules
  • PhpNamespace: recognizes 'void' and 'iterable' as built-in types
  • deprecated setName() & from() trigger warnings (BC break)
  • added Factory::fromMethodReflection()
  • refactoring: transformed to traits, removed Member

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

Mail
v2.4.2

21. 2. 2017

  • fixed phpDoc
  • fixed strict compatibility
  • @return self -> static

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

Database
v2.3.11

21. 2. 2017

  • MySqlDriver: formatLike() uses quote()
  • tests: fixed compatibility with PHP 7.1
  • @return self -> static

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

Bootstrap
v2.4.3

19. 2. 2017

  • added Configurator::addDynamicParameters()
  • compatible with RobotLoader 3.0

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

Di
v2.4.7

19. 2. 2017

  • added dynamic parameters #61
  • Compiler::addExtension() allows empty name
  • each() replaced with current() and next()
  • ContainerBuilder: ltrims \ from service class
  • Helpers::expand supports concatenation of PhpLiteral
  • ContainerBuilder: disable autowiring for aliases only when autowired is TRUE

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

Database
v2.4.2

2. 2. 2017

  • Insert to table with multi primary or without autoincrement primary (#105)(#41)(#80)(#102)
  • Connection::getInsertId() is normalized to string
  • fixed phpDoc
  • DatabaseExtension: fixed compatibility with nette/di
  • SqlBuilder: lose parameters for aliasses (#150)
  • MySqlDriver: formatLike() uses quote()

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

Application
v2.4.5

2. 2. 2017

  • fixed phpDoc
  • uses IResponse constants
  • TemplateFactory: "nonce" is Presenter agnostic (#172)
  • BadRequestException: added getHttpCode()
  • TemplateFactory: dependency on nette/caching is optional
  • Revert "ComponentReflection::combineArgs() throws InvalidArgumentException instead BadRequestException when incompatible type is object"

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

Caching
v2.5.3

2. 2. 2017

  • Cache: do not save data with negative/zero expiration (#50)
  • Cache: create dependencies when closing macro (#49)

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

Php Generator
v3.0.0

2. 2. 2017

  • requires PHP 7.0
  • uses declare(strict_types=1)
  • uses PHP 7.0 scalar and return type hints
  • some classes & members marked as final (BC break)
  • Method: empty body is NULL instead of FALSE (BC break)
  • Helpers::formatArgs() checks for insufficient number of placeholders (BC break)
  • Parameter::setDefaultValue() automatically sets setOptional(), setOptional is deprecated (BC break)
  • PhpNamespace: global namespace represents '' instead of NULL (BC break)
  • PhpNamespace::__construct() $name is mandatory, setName() triggers warnings (BC break)
  • new deprecated stuff triggers warnings b357b90beeed54e1e3f90c005c8e40240e4b1a36
Robot Loader
v3.0.0

2. 2. 2017

  • compatible with PHP 5.6
  • removed setCacheStorage() and dependency on nette/caching (BC break)
  • RobotLoader is case sensitive (BC break)
  • $autoRebuild is private (BC break)
  • getKey() renamed to getCacheKey() (BC break)
  • added RobotLoader::excludeDirectory() (#9)
Tracy
v2.4.6

29. 1. 2017

  • TracyExtension: added 'editorMapping' default parameter (#244)
  • error 500 redesign
  • bar.css: fixed reseting :before and :after
  • templates: improved list of hardclosed elements
  • bar.js: tracy-debug is always in <body>
  • bar.css: fixed whitepace for code nette/application#169
  • bar.css: resets SVG display

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

Http
v2.4.4

19. 1. 2017

  • HttpExtension: added option 'csp' for Content-Security-Policy
  • Response::setCode() added $reason
  • HttpExtension: sends headers via Http\Response

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

Latte
v2.4.3

19. 1. 2017

  • BlockMacros: removed deprecation warning for {includeblock}, it is deprecated silently
  • BlockMacros: dynamic blocks with content-types html & htmlattr are compatible #146
  • BlockMacros: implemented modifies for dynamic blocks
  • RegexpException: added PREG_JIT_STACKLIMIT_ERROR
  • Filters: added |padLeft & |padRight
  • FileLoader::normalizePath() not forget leading ../ #138 #139
  • CoreMacros: {status} uses http_response_code() related to nette/http#113

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

Application
v2.4.4

19. 1. 2017

  • UIMacros: added n:nonce
  • compatibility with nette/di and RobotLoader 3.0

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

Tracy
v2.3.12

18. 1. 2017

  • Bar: is now showing in Safari. See: (#238)
  • bar.css: resets SVG display and :before and :after (#240)
  • Debugger: sends HTTP code with text, related to nette/http#113
  • This release marks the end of life of the 2.3 series

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

Di
v2.4.6

15. 1. 2017

  • PhpGenerator: generates native return type hints
  • Compiler: added option 'alteration'
  • ContainerBuilder: getDefinitionByType() method added #130 (#137)
  • ContainerBuilder::literal() can have arguments
  • Compiler: fixed notice when overwriting service
  • uses Nette\Utils\Reflection::getParameterDefaultValue() to prevent Fatal Error when invalid constant is used
  • nette/php-generator updated to 2.5.0
  • compatibility with nette/php-generator v3

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

Neon
v2.4.1

15. 1. 2017

  • Decoder: every regexp are possessive #36
  • Entity: added __set_state() support #35

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

Php Generator
v2.5.0

15. 1. 2017

  • added Factory
  • Method, Parameter: added support for PHP 7.1 nullable types
  • Parameter::from() prevents fatal error when default value is not resolvable
  • ClassType: improved rendering of anonymous classes
  • add Constant; class constants can have declared visibility and comment
  • refactoring: extracted base class Member for properties, methods and constants
  • Method::from() sets visibility 'public'
  • Parameters: added hasDefaultValue() as replacement of isOptional()
  • deprecated Parameter::from() and Property::from() (BC break)
Reflection
v2.4.1

15. 1. 2017

  • AnnotationsParser: sooner $useReflection initialization
  • AnnotationsParser: fixed expanding to FQCN in bracketed namespace
  • AnnotationParser: support PHP 7 group use statements (nette/di#125)

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

Tracy
v2.4.5

15. 1. 2017

  • added support for Content Security Policy script-src: 'nonce-....' #136
  • bar.js: avoid multiple init for bar links #239
  • bar.css: resets some other CSS properties and :before and :after (#240)
  • bar: showing/hiding of panel is done via CSS classes
  • TracyExtension: fixed compatibility with nette/di
  • bar.js: evalScripts() uses createElement('script') instead of eval()
  • bar.js: monkey patching getResponseHeader() & getAllResponseHeaders() replaced with addEventListener()

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

Utils
v2.4.4

11. 1. 2017

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

Robot Loader
v2.4.2

2. 1. 2017

  • added setTempDirectory(), should be used instead of setCacheStorage()
  • presence of cacheStorage is checked only in register(), not in rebuild()

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

Di
v2.4.5

23. 12. 2016

  • ContainerBuilder: support for nullable types in generated factories #132
  • DependencyChecker: fixed serialization of returnType, supports nullable types
  • Config\Loader: allow absolute paths in includes section (#131)
  • IniAdapter, NeonAdapter: process() is public #134
  • @return self -> static

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

Latte
v2.3.13

21. 12. 2016

  • fixed compatibility with PHP 7.1
  • @return self -> static

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

Forms
v2.3.12

21. 12. 2016

  • BaseControl::setAttribute() and setType() aliased to setHtmlAttribute() and setHtmlType()
  • @return self -> static

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

Forms
v2.4.3

20. 12. 2016

  • BaseControl::setAttribute() and setType() aliased to setHtmlAttribute() and setHtmlType()
  • CheckboxList: added item label prototype
  • RadioList::getLabelPart() uses $itemLabel instead of $label
  • netteForms.js: fixed issue with button type=submit with html #137
  • netteForms: forms with attribute 'novalidate' are not validated (BC break)
  • becomes NPM package
  • @return self -> static

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

Utils
v2.4.2

20. 12. 2016

  • added DateTime::fromParts()
  • DateTime::from() supports microseconds
  • Image: added support for WEBP #73
  • added Arrays::every(), some() & map() #36
  • Validators: support for types int[], string[] etc #119
  • added Validators::everyIs() #123
  • Validators: added validator 'iterable'
  • SmartObject: better exception message for deprecated property usage
  • Json skips workaround on PHP 7.0+
  • @return self -> static

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

Bootstrap
v2.4.2

20. 12. 2016

  • added Configurator::enableTracy as alias for enableDebugger
  • @return self -> static

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

Application
v2.4.3

20. 12. 2016

  • TemplateFactory: added support for custom Template implementation #159 #141
  • JsonResponse: allow scalar payload #168
  • Route::constructUrl(): split of module and presenter moved before global filter (#167)
  • Route::constructUrl() fixed global filter on presenter name (#161)
  • LatteExtension: added support for macro factories defined as DI services
  • Application: fixed empty $requests when createInitialRequest() failed, thx to @vlastavesely #163
  • Template::addFilter() returns $this
  • @return self -> static

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

Utils
v2.3.11

19. 12. 2016

This release marks the end of life of the nette/utils 2.3 series

  • FileSystem: added read() (#124)
  • FileSystem: fix mkdir race condition (#120)
  • Image: fix conversion of percentage arguments to numeric values (#122)
  • fixed compatibility with PHP 7.1
  • @return self -> static

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

Security
v2.4.1

19. 12. 2016

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

Http
v2.4.3

19. 12. 2016

  • Http\Response::setCode produces valid HTTP header on nginx (#113)
  • SessionSection::removeExpiration() fixed (#111)
  • UrlScript: accept optional $scriptPath parameter in constructor (#109)
  • UserStorage: removed BROWSER_CLOSED expiration reason #112
  • @return self -> static

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

Http
v2.3.8

19. 12. 2016

  • Http\Response::setCode produces valid HTTP header on nginx and PHP >= 5.4(#113)
  • @return self -> static
  • SessionSection::removeExpiration() fixed (#111)
  • RequestFactory: improved checking of $_FILES structure

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

Di
v2.3.13

19. 12. 2016

  • ServiceDefinition::setImplementType() and getImplementType() aliased to setImplementMode() & getImplementMode() (#122)
  • @return self -> static

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

Component Model
v2.2.5

19. 12. 2016

  • @return self -> static
  • Container::getComponent() optimization

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

Tracy
v2.4.4

10. 12. 2016

  • Bar: removes entries from session after 60 seconds #234
  • Bar: all assets & contents in single HTTP request
  • Revert "Bar: JS & CSS is cached in localStorage (#226)" #228
  • Added Linux version of 'open-in-editor' tool (#235)
  • BlueScreen: ability to set whether panel is collapsed or not (#232)
  • Helpers::improveException() removes namespace from function name because is confusing (related to PHP issue 73049)

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

Di
v2.4.4

8. 11. 2016

  • InjectExtension: fixed injecting of services which cannot be autowired via @Inject #127
  • PhpGenerator: lazy load interface definitions for generated factories #129
  • ContainerBuilder::completeStatement() uses autowiring only when class is known

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

Robot Loader
v2.4.1

26. 10. 2016

  • added setAutoRefresh()
  • $refreshed is set in rebuildCallback()

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

Caching
v2.5.2

18. 10. 2016

  • Cache: TAGS in dependencies are converted to array list #46
  • SQLiteStorage: filesystem permissions like ordinary file (#44)

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

Caching
v2.4.7

18. 10. 2016

  • Cache: TAGS in dependencies are converted to array list #46
  • SQLiteStorage: filesystem permissions like ordinary file (#44)

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

Database
v2.4.1

18. 10. 2016

  • SqlPreprocessor: escapes primary value of IRow #144
  • Selection: missing primary key can be FALSE, '0' or '' #145
  • ConnectionPanel: preserves whitespaces in explain panel #134
  • Sqlite: fixed datetime column type
  • SqlBuilder: added support for limit in update and delete queries (#140)
  • tests: fixed compatibility with PHP 7.1

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

Http
v2.4.2

18. 10. 2016

  • Session: removed cookie nette-browser and support for expiration 'until the browser is closed' (#103)
  • UrlScript: default scriptPath is whole path to maintain same behavioral as the class Url (in method getBasePath, ...) #100
  • RequestFactory: parse the "proto" part of "forwarded" header instead of the "scheme" part. (#106)
  • IResponse: added missing HTTP response codes (#107)
  • Session: make sure __NF is array (#108)
  • Session::$options: removed null options

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

Database
v2.3.10

18. 10. 2016

  • SqlPreprocessor: escapes primary value of IRow #144
  • Selection: missing primary key can be FALSE, '0' or '' #145

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

Utils
v2.4.1

30. 9. 2016

  • SmartObject: added support for annotations in traits (thx @matej21) #121
  • FileSystem: fix mkdir race condition (#120)
  • fixed compatibility with PHP 7.1

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

Tracy
v2.4.3

30. 9. 2016

  • Bar: JS & CSS is cached in localStorage (#226)
  • Dumper::encodeString() optimization, slow regexp is used for shortened string #223
  • Revert "Bar: disables XDEBUG_PROFILE & XDEBUG_TRACE" - it cannot be disabled
  • Dumper::encodeString - use mb_substr (#222)
  • Logger::getExceptionFile() ignores exception arguments
  • Logger: added exception code to log
  • Revert "Bar: detects and uses document root path" #216
  • Debugger::errorHandler() calls Helpers::improveException() before ErrorException is logged

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

Latte
v2.4.2

27. 9. 2016

  • Filters: added support for including blocks in HTMLCOMMENT #136
  • PhpWriter::validateTokens fixed to not recognize Namespace\CLASS as constant
  • BlockMacros - define: fixed variables extracting when named parameters are used (#131)
  • StringLoader: throws exception when is unable to load referred template #129
  • Filters::escapeHtmlAttr() prevents double escaping of Latte\Runtime\Html

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

Http
v2.4.1

27. 9. 2016

  • FileUpload: added hasFile() (#97)
  • Url::getHostUrl() doesn't return empty // #96
  • Session: max session id length is 256 #105
  • Session: used static access to $started (#104)
  • FileUpload: missing variable #98
  • RequestFactory: improved checking of $_FILES structure

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

Application
v2.4.2

27. 9. 2016

  • UI: added support for PHP 7.1 nullable types
  • Revert "Presenter: invalid component name in signal throws BadSignalException"
  • MicroPresenter: fixed passing of services to closure in 2.4
  • ComponentReflection::combineArgs() throws InvalidArgumentException instead BadRequestException when incompatible type is object
  • Route: fixed PHP warning "strpos(): Offset not contained in string" (#154)
  • ComponentReflection::parseAnnotation: fix false positive annotation parsing (#151)

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

Forms
v2.3.11

27. 9. 2016

  • netteForms.js: cannot use range() to validate min/max (#136)
  • netteForms.js: validity of input=number is checked in 'onlyCheck' mode
  • netteForms.js: compatibility with 2.4
  • netteForms: added version
  • fixed compatibility with PHP 7.1

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

Forms
v2.4.2

27. 9. 2016

  • netteForms.js: cannot use range() to validate min/max (#136)
  • netteForms.js: added argument 'onlyCheck' to validateForm() #133
  • netteForms.js: validity of input=number is checked in 'onlyCheck' mode
  • Rules::validate() processes all conditions
  • fixed compatibility with PHP 7.1
  • netteForms.js: fixed compatiblity with IE 8 (#127)

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

Di
v2.4.3

27. 9. 2016

  • Helpers::autowireArguments() can handle PHP 7.1 nullable types
  • PhpReflection::getReturnType() can handle PHP 7.1 nullable types
  • PhpReflection::getParameterType() can handle PHP 7.1 nullable types (#126)
  • PhpReflection::getParameterType() supports type 'self'
  • DependencyChecker: takes into account if class is abstract
  • InjectExtension::getInjectMethods() correct order of methods in traits
  • PhpReflection: support PHP 7 group use statements (#125)
  • DependencyChecker: do not call getParameterType() in PHP < 7 #124
  • Compiler: improved overwriting of single arguments

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

Tracy
v2.4.2

31. 7. 2016

  • BlueScreen: catches exceptions while rendering user panels #208
  • Dumper: removed dependency on utf8_decode because it is missing in some PHP packages #212
  • Bar: assets path dependent on session cookie path (#213)
  • bar.js: fix for protocol-less ajax url request (#211)
  • bar.js: warning about IE11+ thrown as exception because console may not exist
  • Debugger::enable() and dispatch() throws exception when output has been sent

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

Php Generator
v2.4.1

31. 7. 2016

  • ClassType: added @Property $properties (#23)
  • Helpers::dump() native dumping of DateTime & DateTimeImmutable

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

Mail
v2.4.1

31. 7. 2016

  • SmtpMailer: add support for AUTH PLAIN (#31)

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

Di
v2.3.12

31. 7. 2016

  • ContainerLoader::load() allows swapped arguments

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

Di
v2.4.1

31. 7. 2016

  • ContainerBuilder: improved exception messages
  • Config\Loader: removed realpath() to be compatible with FileMock #120
  • ContainerLoader: fixed extra implode() #119

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

Di
v2.4.2

31. 7. 2016

  • PhpReflection::parseAnnotation() regexp fix
  • DependencyChecker: prevents fatal error when undefined constant is used as default value of method parameter
  • DIExtension: added option 'parentClass' nette/bootstrap#52
  • ContainerBuilder::resolveImplement: use isDefaultValueAvailable instead of isOptional (#121)

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

Caching
v2.5.1

31. 7. 2016

  • SQLiteJournal: checking for extension pdo_sqlite is lazy, service cache.journal is created always

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

Caching
v2.4.6

31. 7. 2016

  • SQLiteJournal: filesystem permissions like ordinary file #29
  • SQLiteJournal: checking for extension pdo_sqlite is lazy, service cache.journal is created always

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

Latte
v2.4.1

31. 7. 2016

  • CoreMacros: translate macro does not use output buffer when possible #124
  • Snippets: disable snippet mode when rendering snippets BC break - interface changed
  • CoreMacros: {spaceless} works the same way as |strip and strips output in chunks
  • Revert "deprecated filter |strip", changed implementation to prevent backtrace limit errors
  • BlockMacros: fixed expandTokens in dynamic blocks (#125)
  • PhpWriter: fixed handling of uppercase class name
  • fixed compatibility with PHP 7.1

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

Application
v2.4.1

31. 7. 2016

  • SnippetBridge: added setSnippetMode; added snippet test (#150)
  • Presenter: removed static from refUrl variable (#80)
  • Presenter: fixed creating link with required persistent parameters (#148)
  • Presenter: flash key has to be string (fix for "Array to string conversion" notice) (#147)
  • ComponentReflection::parseAnnotations: fixed regexp quoting

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

Forms
v2.4.1

9. 7. 2016

  • added netteForms.min.js
  • netteForms: forms are initialized on DOMContentLoaded instead of onload
  • netteForms: fixed compatibility with IE 8
  • Container::addInteger() is nullable
  • TextInput: Reverts, validators FLOAT doesn't automatically sets type to 'number'
  • TextBase: added setNullable()
  • TextBase: emptyValue is removed from value in validate()
  • TextBase, TextInput, TextArea: refactoring, rendered value is built in getRenderedValue()
  • TextInput: rules are processed in addRule() instead of getControl() (is consistent with TextBase)

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

Tracy
v2.4.1

30. 6. 2016

  • bar.js: tracks XMLHttpRequest.getResponseHeader method #205
  • bar.js: Strip tags from window title when opening in new window (#203)
  • Bars: sends CSS with UTF-8 charset (#201)
  • TracyExtension: Don't dispatch Debugger in a CLI (#200)
  • bar.js: auto hide labels works after ajax

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

Forms
v2.4.0

30. 6. 2016

  • requires PHP 5.6
  • support for true optional controls via setRequired(FALSE) (BC break)
  • checks for missing setRequired(TRUE | FALSE)
  • Container: added addEmail() & addInteger()
  • Form: added isMethod(), beforeRender() & fireRenderEvents() and event $onRender
  • negative rules like ~$form::ABCD are deprecated. (Negatives for FILLED & EQUAL are BLANK & NOT_EQUAL)
  • controls: getOption('type') for distinguishing between them
  • TextInput: validators EMAIL, URL, INTEGER and FLOAT automatically sets type to 'email', 'url' or 'number' (BC break)
  • SelectBox, MultiSelectBox: added addOptionAttributes()
  • SelectBox: added isOk()
  • UploadControl: when file is uploaded with error, automatically shows error and isFilled() returns TRUE (BC break)
  • UploadControl: added isOK()
  • CheckboxList: added containerPrototype #92
  • DefaultFormRenderer: adds class 'text' to input types 'email' and 'number' (for back compatibility after 72127b1e)
  • DefaultFormRenderer: wrapper for hidden fields changed from <div> to none
  • Form::addProtection() is always the first item
  • added BaseControl::enableAutoOptionalMode()
  • uses Nette\SmartObject & StaticClass

netteForms.js:

  • ability to show all error messages at once via Nette.showFormErrors() #65
  • displays all errors at once #65
  • removed support for IE =< 7
  • toggle handlers are added on body, uses addEventListener or attachEvent

Latte:

  • {label} is AUTO_EMPTY
  • <tag n:name> always uses getControlPart() and getLabelPart(), removed method_exists checking (BC break)
  • local $_form replaced with global $this->global->formsCurrent so it is not needed to pass $_form to included templates

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

Forms
v2.3.10

30. 6. 2016

  • BaseControl::setValue() marked as @Internal #114
  • Container: calls validate() only for IControl & Container #86
  • Rename Html:add() to Html:addHtml() to follow nette/utils#111 (#120)
  • netteForms.js: validates fucking HTML5 type 'number'

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

Database
v2.4.0

28. 6. 2016

  • requires PHP 5.6
  • NDBT: Added alias support #119
  • NDBT: added new method whereOr (#111)
  • NDBT: Added ability to specify left join conditions
  • NDBT: performance, prevents multiple parse of query parts by regexp (#131)
  • NDBT: queries with limit/offset are automatically ordered by primary key
  • NDBT: page() for $page < 1 returns no rows
  • drivers: applyLimit throws exception for negative values (BC break)
  • Improved checking of unique table name
  • Helpers::detectType() uses more strict type patterns
  • SqlPreprocessor: detects modes inside SQL string, before ?
  • Selection: fixed columns cache in repeated use of same selection
  • SqlBuilder: The same conditions with different parameter is not skipped #109, #14
  • PgSqlDriver::getTables() returns materialized views (#136)
  • SqlsrvDriver::formatDateTime(): format datetime by ISO 8601
  • Connection: fifth argument is deprecated
  • uses Nette\SmartObject & StaticClass

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

Application
v2.4.0

27. 6. 2016

  • requires PHP 5.6
  • PresenterComponent, Form: added $onAnchor
  • Route, SimpleRouter: by default keeps the currently used HTTP/HTTPS protocol (BC break) nette/nette#1196 nette/routing#14
  • Route: added support for scheme:// in mask
  • Route: add %host% variable (#140)
  • Route: Added variable for domain second level name (%sld%)
  • Route: support for optional [<module>]
  • RouteList: added warmupCache()
  • PresenterFactory: added possibility to configure mapping via array #101 #119
  • PresenterComponent: added redirectPermanent()
  • Presenter: support for direct setting layout file
  • Presenter: don't mix GET & POST params in AJAX when form is submitted nette/forms#33 nette/nette#1061 (#127)
  • Snippets: do not render snippets from a template which is included using includeblock macro
  • JsonResponse: sends utf-8 charset #120
  • UIMacros: {control} wrap arguments in array only when needed nette/nette#1206
  • uses Nette\SmartObject

deprecated, changed:

  • Presenter: argsToParams() and saveState() now distinguish between NULL and FALSE #107
  • PresenterComponentReflection::convertType() objects can be passed only to parameters without array or scalar type (without array / scalar default value) (BC break)
  • Form: uses underscored signal parameter _do only in POST forms
  • IRouter::SECURED is deprecated
  • Router::$defaultFlags and flag SECURED are deprecated nette/routing#13
  • PresenterComponent ⇒ Component
  • PresenterComponentReflection ⇒ ComponentReflection
  • Control::validateControl() & invalidateControl(), Presenter::backlink() and Template::registerHelper() trigger E_USER_DEPRECATED
  • Presenter: triggers notice when payload is send via terminate()
  • UIMacros: uses Latte providers uiControl and uiPresenter instead of $_control and $_presenter
  • composer: removed dependency on nette/security (#132)

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

Latte
v2.4.0

27. 6. 2016

  • requires PHP 5.4
  • generates pretty PHP code
  • implemented content type aware filters (triggers warning when mixing blocks/files in different contexts)
  • Implemented inline filters ($var|modifiers) #59
  • added operator in: $entry in [item1, item2] #27
  • {define} accepts parameters
  • added macro {import 'file'}
  • added macro {spaceless}
  • implemented {while} ... {/while $cond}
  • extremely fast filters
  • added |stripHtml
  • added |linebreaks
  • added |length for strings, arrays, Countable and Iterator #103
  • {syntax off} can be ended with {/syntax}
  • added Engine::addProvider(), runtime dependencies and options for macros
  • added SnippetDriver & ISnippetBridge, snippet refactoring
  • supports new operators <=> ** ...
  • {contentType} do not send header when is rendered to string or included #106
  • {capture} creates Latte\Runtime\Html in HTML content type (BC break)
  • new flags IMacro::AUTO_EMPTY and IMacro::AUTO_CLOSE
  • StringLoader: accepts array of strings
  • added |checkurl & |nocheck as aliases for |safeurl & |nosafeurl
  • added MacroNode::$innerContent nette/nette#1361
  • Engine::loadTemplate() invalidates opcode cache
  • Parser: exception 'Template is not valid UTF-8 stream' provides line number

deprecated, changed:

  • inline PHP <? ... ?> is deprecated
  • {includeblock} is deprecated
  • {? ...} is replaced with {php ...}
  • {use} and {status} are deprecated
  • |nl2br is deprecated
  • BlockMacros: <tag> in {snippet} is deprecated
  • {include |escape} and {block |escape} trigger warning about auto-escaping
  • {contentType} is allowed only in template header and in <script> due to #71
  • Latte\Template ⇒ Latte\Runtime\Template
  • Engine::getFilters() returns only name of filters
  • added ILoader::getUniqueId(), changed interface
  • MacroNode, HtmlNode: $isEmpty replaced with $empty
  • ILoader::getChildName()getReferredName() BC break, changed interface
  • uses $global accumulator instead of $_l and $_g
  • variable $template is deprecated
  • PhpWriter: deprecated support for constant names without underscore
  • Parser: removed support for ASP & Python syntax (BC break)

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

Di
v2.4.0

27. 6. 2016

  • requires PHP 5.6
  • implemented Fine Grained Dependencies
  • new autowiring approach, option autowired can contain list of classes (#84)
  • added support for setup syntax $prop = value and '$prop[]' = value
  • Compiler: allows to overwrite single arguments
  • ContainerLoader::loadFile() invalidates opcache
  • ContainerBuilder: split into ContainerBuilder and PhpGenerator
  • DIExtension: debugger is enabled by default
  • Compiler::parseServices: added @extension syntax for referencing services from a same extension (#85)
  • uses Nette\SmartObject & StaticClass
  • Compiler: support for removing services via 'name: no'

deprecated, changed:

  • Compiler: parseServices() and parseService() renamed to loadDefinition() and loadDefinitions() (#112)
  • di.accessors are deprecated
  • ServiceDefinition::setImplementType() and getImplementType() renamed to setImplementMode() & getImplementMode()
  • ContainerLoader::load() swapped arguments (BC break)
  • ContainerBuilder: setClassName() & getClassName() moved to Compiler (BC break)
  • Statement::setEntity() is deprecated
  • Compiler: option 'run' is deprecated, should be used as tag
  • Compiler: deprecated section inheritance child < parent (BC break)

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

Http
v2.4.0

25. 6. 2016

  • requires PHP 5.6
  • Implemented RFC 7239 - "Forwarded HTTP Extension" (#94)
  • Session: fixed error "Session object destruction failed" - update (#86)
  • RequestFactory: removes absolute URI from $_SERVER['REQUEST_URI'](issue #91) (#93)
  • RequestFactory: correctly detects scheme and port if the server is behind a trusted proxy #81 #4
  • IRequest: added OPTIONS and PATCH method constant (#95)
  • Response: do not send "Possible problem notice in CLI" #89
  • Response::setExpiration() removes header Pragma
  • RequestFactory: Fixed possible remoteAddr spoofing (issue #87)
  • FileUpload::move() do not suppress system warnings #82
  • HttpExtension, SessionExtension: added parameter $cliMode
  • Url: implements JsonSerializable nette/latte#78
  • HttpExtension: service http.context is deprecated
  • Session: use better detection for started session
  • uses Nette\SmartObject & StaticClass

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

Mail
v2.4.0

25. 6. 2016

  • requires PHP 5.6
  • Message::setHtmlBody() added new syntax for embedded files [[image.gif]] #29
  • added FallbackMailer #28
  • Message: added addInlinePart() #27
  • SmtpMailer: allow set stream context (#30)
  • uses Nette\SmartObject

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

Neon
v2.4.0

25. 6. 2016

  • requires PHP 5.6
  • added support for multilines strings nette/nette#1375
  • Decoder: added support for octal 0o777 and binary 0b11001 numbers #31
  • Decoder: generates DateTimeImmutable instead of DateTime (BC break)
  • Decoder: refactoring, added some constants

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

Bootstrap
v2.4.1

25. 6. 2016

  • Configurator: added setTimeZone()
  • Configurator: passes %consoleMode% to some extensions

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

Application
v2.3.13

17. 6. 2016

  • Route: add %host% variable (#140)
  • Route: Added variable for domain second level name (%sld%)
  • Route: fixed checking for missing [

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

Bootstrap
v2.4.0

17. 6. 2016

  • requires PHP 5.6.0
  • uses Nette\SmartObject & StaticClass
  • Configurator: removed ReflectionExtension
  • Configurator: extracted loadContainer() from createContainer()
  • Configurator: warns when deprecated 'nette' section is used
  • Configurator: removed parameter 'environment' (BC break)
  • Configurator: removed parameter 'container' (BC break)
  • Configurator::addConfig() sections are deprecated (BC break)

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

Bootstrap
v2.3.5

17. 6. 2016

  • TracyBridge: fixed highlighting of long lines nette/tracy#156
  • compatible only with nette/di 2.3.*

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

Caching
v2.5.0

17. 6. 2016

  • requires PHP 5.6
  • uses Nette\SmartObject
  • removed FileJournal (note that successor SQLiteJournal requires pdo-sqlite extension)
  • added bulk read support #2 #42
  • added NewMemcachedStorage using memcached extension #38
  • CacheMacro: compatibility with Latte 2.4, uses Latte provider 'cacheStorage' (and 'cacheStack')
  • CacheMacro: improved dependency on files

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

Caching
v2.4.5

17. 6. 2016

  • SQLiteJournal: lazy initialization

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

Component Model
v2.3.0

17. 6. 2016

  • requires PHP 5.6
  • uses Nette\SmartObject
  • Container::getComponent() optimization
  • Component::__construct() parameters $parent & $name are deprecated

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

Di
v2.3.11

17. 6. 2016

  • PhpReflection: fixed expanding to FQCN in bracketed namespace
  • added Compiler::setClassName()

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

Finder
v2.4.0

17. 6. 2016

  • requires PHP 5.6
  • uses Nette\SmartObject with explicit support for extension methods

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

Http
v2.3.7

17. 6. 2016

  • Session: removed duplicated warning about sent headers
  • Response::setExpiration() removes header Pragma

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

Neon
v2.3.5

17. 6. 2016

  • Decoder: fixed datetime regexp #29
  • Decoder: some regexps changed to constants

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

Php Generator
v2.4.0

17. 6. 2016

  • requires PHP 5.6
  • uses Nette\SmartObject & StaticClass
  • deprecated addDocument(), setDocuments() and getDocuments() and replaced with addComment(), setComment() and getComment()

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

Php Generator
v2.3.6

17. 6. 2016

  • Helpers::dump() support for infinite floats
  • added addComment(), setComment() and getComment()

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

Reflection
v2.4.0

17. 6. 2016

  • requires PHP 5.6
  • uses Nette\SmartObject & StaticClass
  • AnnotationsParser::parsePhp() Return also classes without annotations

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

Robot Loader
v2.4.0

17. 6. 2016

  • requires PHP 5.6
  • uses Nette\SmartObject

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

Robot Loader
v2.3.2

17. 6. 2016

  • typos, tests

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

Security
v2.3.2

17. 6. 2016

  • tests, typos

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

Security
v2.4.0

17. 6. 2016

  • requires PHP 5.6
  • uses Nette\SmartObject & StaticClass
  • Passwords: simplified with password_* API
  • Passwords::hash() removed option 'salt' (BC break)

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

Tracy
v2.4.0

17. 6. 2016

image

  • requires PHP 5.4.4 or newer
  • Bar & BlueScreen: displays AJAX requests
  • saving & restoring of toggles
  • Bar: is loaded in separated HTTP requests
  • Bar: info bar show HTTP method & response code
  • Bar: panel height fits to the viewport #184 (#188)
  • Bar: automatic labels hiding to conserve space #173
  • Bar: lazy rendering of panels (#160)
  • BlueScreen: added $maxDepth & $maxLength #114
  • BlueScreen: added panel with last muted error #133
  • BlueScreen: added renderToFile() #130
  • Bluescreen: rel=noopener for target=_blank
  • Debugger: added $editorMapping support #170
  • Debugger::$maxLen ⇒ $maxLength
  • Debugger::dispatch() starts session if is not started
  • Debugger: error exit code changed from 254 to 255 to be the same as native error code
  • added function bdump()
  • Helpers::getSource: shows PID in CLI logs
  • Tracy requires IE11+

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

Utils
v2.4.0

17. 6. 2016

  • requires PHP 5.6
  • added trait Nette\SmartObject, it differs from Nette\Object:
    • magic properties without @Property annotation are deprecated
    • accessing methods as properties is deprecated
    • extension methods are deprecated
    • magic @methods are deprecated
    • getReflection is deprecated
    • invoking closure in property is deprecated
  • added trait Nette\StaticClass
  • Html: renamed add() to addHtml(); added addText() (#111)
  • Html: deprecated "expanded" attribute data
  • Html: added attribute public accessor methods
  • Image::place() preserves the alpha channel
  • Strings::random() renamed to Random::generate()
  • Random: uses random_bytes() on PHP 7
  • FileSystem: added read()
  • ArrayList: added prepend()
  • Json::encode() uses by default JSON_PRESERVE_ZERO_FRACTION (BC break) #89
  • DateTime: implements JsonSerializable, formats date in ISO 8601 format accepted by JavaScript's Date object (BC break)
  • Filter & RecursiveFilter are deprecated

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

Utils
v2.3.10

17. 6. 2016

  • Html: added addHtml() and addText() (#111)

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

Utils
v2.3.9

31. 5. 2016

  • Object: removed alias for ObjectMixin, it may interfere with nette/deprecated, which creates alias Nette\ObjectMixin

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

Forms
v2.3.9

31. 5. 2016

  • UploadControl: added isOK()
  • Helpers::exportRules() skips empty branches
  • netteForms.js: Nette.noInit = true disables auto initialization

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

Database
v2.3.9

31. 5. 2016

  • Helpers::detectType() detects DATERANGE as text
  • Structure::analyzeForeignKeys() fixed lowercased name #122

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

Latte
v2.3.12

30. 5. 2016

  • Filter strip: fixed bug when input begins with <pre> <script> or <textarea>
  • Filters::escapeHtml escapes all entities
  • Compiler: pretty whitespace around comments
  • MacroTokens: added new operators <=> ** ...
  • Compiler: improved error messages

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

Tracy
v2.3.11

30. 5. 2016

  • Dumper: fixed missing escape for & (#187)
  • bar.js: fixed evaluating script tags in panels in window-mode (#174)
  • Bluescreen: rel=noopener for target=_blank
  • BlueScreen::highlightLine() line may be out of range #148
  • Bar: versioning of data in session #146 #149

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

Nette
v2.3.10

13. 4. 2016

  • composer.json: relaxed dependencies to ~2.3.x
  • Http\RequestFactory: Fixed possible remoteAddr spoofing (issue nette/http#87)
  • PresenterFactory: added possibility to configure mapping via array
  • Presenter: isLinkCurrent is compatible with PHP 7 typehints
  • RouteList: added warmupCache()
  • JsonResponse: sends utf-8 charset
  • DI\ContainerBuilder: unused parameters check when generating factory
  • DI\Compiler: support for removing services via 'name: no'
  • Mail\Message: improved regexp for seaching embedded images
  • SafeStream: unregister protocols in cleaner way
  • Html::__toString() prints better error message
  • Latte: exception 'Template is not valid UTF-8 stream' provides line number
  • Latte: supports PHP 7 coalesce operator
  • Tracy\Bar: added CPU usage to info panel
  • TracyExtension: added option 'showBar'

For the details you can have a look at: application, di, http + previous, mail, reflection, safe-stream, utils, latte, tracy.

Nette
v2.2.13

13. 4. 2016

This release marks the end of life of the Nette 2.2 series. All users are encouraged to upgrade to the current stable version.

  • composer.json: relaxed dependencies to ~2.2.x
  • Http\RequestFactory: Fixed possible remoteAddr spoofing (issue nette/http#87)
Mail
v2.3.5

13. 4. 2016

  • Message: improved regexp for seaching embedded images #25

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

Latte
v2.3.11

10. 4. 2016

  • Engine: reverted "throws CompileException when template contains parse error"
  • BlockMacros: store includingBlock flag in the template global storage when including file using includeblock macro
  • Parser: exception 'Template is not valid UTF-8 stream' provides line number
  • MacroTokens: added null coalesce operator; PhpWriter: quoteFilter recognizes null coalesce operator
  • ob_start() is protected against flush when error occurs

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

Application
v2.3.12

6. 4. 2016

  • PresenterFactory: added possibility to configure mapping via array; thanks @achse #101 #119
  • Presenter: isLinkCurrent is compatible with PHP 7 typehints #126
  • RouteList: added warmupCache()
  • JsonResponse: sends utf-8 charset #120
  • RoutingPanel: fixed displaying of empty mask ''

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

Di
v2.3.10

1. 4. 2016

  • PhpReflection::expandClassName() added support for @return $this
  • ContainerBuilder: unused parameters check when generating factory
  • Compiler: support for removing services via 'name: no'
  • PhpReflection::parseUseStatemenets(): class in use can contain leading \ #97
  • ContainerPanel: ob_start() is protected against flush when error occurs

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

Http
v2.2.10

1. 4. 2016

  • RequestFactory: Fixed possible remoteAddr spoofing (issue #87)
  • removed rarely used @property phpDoc
  • Fix FileUpload::move($dest) when low permission to chmod

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

Http
v2.3.6

1. 4. 2016

  • RequestFactory: Fixed possible remoteAddr spoofing (issue #87)
  • SessionPanel: ob_start() is protected against flush when error occurs

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

Reflection
v2.3.2

1. 4. 2016

  • AnnotationsParser::parsePhp() Return also classes without annotations
  • Method: self replaced with static

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

Safe Stream
v2.3.2

1. 4. 2016

  • SafeStream: unregister protocols in cleaner way #6

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

Utils
v2.3.8

1. 4. 2016

  • ArrayHash: fixed bug in ArrayIterator #103
  • Html::__toString() prints better error message
  • Image: ob_start() is protected to be not flushable

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

Tester
v1.7.1

19. 3. 2016

  • Tester itself is tested on AppVeyor (Windows CI)
  • Dumper
    • dumpException() stores strings when maxLength is exceeded
    • dumpException() improved searching for Assert method invocation
    • Dumper::color() uses simple color escape codes (AppVeyor compatibility)
  • Environment: removes output buffers on shutdown before error message is print
  • Assert::error() fixed that restore_error_handler() isn't working when called from the error handler which throws exception
  • FileMock: read/write modes behave more like ordinary filesystem

For more information see documentation and changelog.

Tracy
v2.3.10

29. 2. 2016

  • Debugger: flushes (not cleans) output buffers before Bar is rendered
  • Bar: added CPU usage to info panel #144
  • Dumper: fix possible E_NOTICE #141
  • TracyExtension: added option 'showBar'
  • ob_start() is protected against flush when error occurs

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

Nette
v2.3.9

22. 2. 2016

Application

  • Presenter::argsToParams() computes default values for mandatory parameters with built-in typehint
  • Presenter: throws exception when parameter has scalar type hint & no default value and argument is missing
  • Route: support for optional [<module>]
  • Template: better error message when Translator is not set

Caching

  • added NewMemcachedStorage

DI

  • DI\Container: added getServiceType()
  • DI\Compiler: InjectExtension is moved after extensions added by ExtensionsExtension
  • DI\Compiler: calls prepareClassList() after each beforeCompile()
  • DI\ContainerBuilder::removeAlias() removes aliases
  • DI\Helpers::autowireArguments() better error message for PHP7 and class name case mismatch

Forms

  • Form: added IS_NOT_IN
  • Forms\Helpers::exportRules() correctly exports empty arrays
  • Forms: allow Form::VALID only in the addConditionOn
  • FormMacros: better error messages
  • SelectBox: is not required when size > 1
  • Validator: pattern: supports back reference
  • __toString handles Throwable errors
  • netteForms.js: validator 'equal' compares values as PHP strings

HTTP

  • IRequest: added PATCH method constant
  • Fix FileUpload::move($dest) when low permission to chmod

Neon

  • Neon\Decoder: fixed entity value conversion in the entity chain

Latte

  • BlockMacros: fixed enabling snippetMode in the dynamic snippetArea
  • Latte\Parser::parseMacroTag() fixed extraction of modifier
  • Parser: || is not modifier separator
  • Engine: fixed CompileException sourceLine on PHP7
  • FileLoader: error message explaining touching, when touch() fails

Tracy

  • added Debugger::$showBar, can disable debug bar
  • Bluescreen: link to google opens in new window
  • Bar: add xdebug version to info panel
  • bar.js: MouseEvent.buttons is not supported by Safari
  • Dumper: support for general object exporter which is called for every object
  • Dumper: object exporters are called in order from most specific to general
  • Debugger: removes output buffer for Bar, Bluescreen and production error. It decides whether clean or flush output buffers.
  • Dumper: variable term=xterm-256color enables colors

For the details you can have a look at: application + previous + previous, caching, di + previous, finder, forms + previous, http, neon, latte + previous, tracy + previous.

This release marks the end of active support of the Nette 2.3 series. For one year only critical issues will be fixed.

Caching
v2.4.4

22. 2. 2016

  • added NewMemcachedStorage using memcached extension #38
  • CacheExtension: journal service SQLiteJournal is added only when extension pdo_sqlite is loaded
  • CacheMacro: better error message

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

Caching
v2.3.5

22. 2. 2016

  • added NewMemcachedStorage using memcached extension #38
  • CacheMacro: better error message

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

Tracy
v2.3.9

22. 2. 2016

  • bar.js: MouseEvent.buttons is not supported by Safari #134
  • Dumper: support for general object exporter which is called for every object
  • Dumper: object exporters are called in order from most specific to general
  • Debugger: removes output buffer for Bar, Bluescreen and production error. It decides whether clean or flush output buffers.
  • Dumper: variable term=xterm-256color enables colors

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

Latte
v2.3.10

19. 2. 2016

  • Parser: || is not modifier separator #100
  • Engine: fixed CompileException sourceLine on PHP7
  • FileLoader: error message explaining touching, when touch() fails

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

Forms
v2.3.8

19. 2. 2016

  • SelectBox: is not required when size > 1
  • Validator: pattern: supports back reference #104

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

Di
v2.3.9

19. 2. 2016

  • Compiler: calls prepareClassList() after each beforeCompile() #94

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

Application
v2.3.11

8. 2. 2016

  • Route: support for optional [<module>]
  • ApplicationExtension: do not initialize RoutingPanel if Tracy is not installed
  • Presenter: throws exception when parameter has scalar type hint & no default value and argument is missing #112
  • PresenterComponentReflection::combineArgs() throws exception when parameter has scalar type hint, no default value and argument is missing
  • PresenterComponentReflection::convertType() NULLs are not allowed

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

Tester
v1.7.0

8. 2. 2016

  • HtmlGenerator: not evaluated sources are counted as not covered #248
  • TestCase
    • data provider can return Traversable #272
    • error handler is registered only once #268
    • data provider file may start by dot
  • Dumper
    • print object hash #277
    • fixed dumping INF in PHP 7.0.2
    • toLine() improved empty array dump
    • dumpException() prints source line where Assert is called
  • Added support for PHPDBG SAPI #258
  • CodeCoverage: added support for PHPDBG collector as Xdebug alternative
  • DataProvider: added support for .php provider #280
  • Environment: variable term=xterm-256color enables colors
  • FileMock: added unlink()

For more information see documentation and changelog.

Tracy
v2.3.8

20. 1. 2016

  • added Debugger::$showBar, can disable debug bar #132 #83 #82
  • Bluescreen: link to google opens in new window
  • Bar: add xdebug version to info panel
  • Dumper::encodeString() is independent on iconv #126
  • Dumper: fixed dumping INF in PHP 7.0.2

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

Latte
v2.3.9

20. 1. 2016

  • BlockMacros: fixed enabling snippetMode in the dynamic snippetArea
  • Parser::parseMacroTag() fixed extraction of modifier nette/nette#1541

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

Neon
v2.3.4

20. 1. 2016

  • Decoder: fixed entity value conversion in the entity chain

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

Http
v2.3.4

20. 1. 2016

  • IRequest: added PATCH method constant
  • Fix FileUpload::move($dest) when low permission to chmod
  • removed rarely used @property phpDoc

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

Forms
v2.3.7

20. 1. 2016

  • Form: added IS_NOT_IN
  • Helpers::exportRules() correctly exports empty arrays #102
  • Rules: allow Form::VALID only in the addConditionOn #95 #101
  • FormMacros: better error messages
  • __toString handles Throwable errors
  • netteForms.js: validator 'equal' compares values as PHP strings

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

Finder
v2.3.2

20. 1. 2016

  • fixed typehints, FilesystemIterator -> RecursiveDirectoryIterator in filters

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

Di
v2.3.8

20. 1. 2016

  • Container: added getServiceType()
  • Compiler: InjectExtension is moved after extensions added by ExtensionsExtension #88
  • ContainerBuilder: service name must not be empty
  • ContainerPanel: removed color distinction
  • ContainerBuilder::removeAlias() removes aliases
  • ContainerBuilder::checkCase() checks interfaces too
  • Helpers::autowireArguments() better error message for PHP7 and class name case mismatch

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

Application
v2.3.9

20. 1. 2016

  • Presenter::argsToParams() computes default values for mandatory parameters with built-in typehint
  • Template: better error message when Translator is not set

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

Database
v2.3.8

3. 12. 2015

  • Selection::insert() fixed delimiting of FQN sequence name like 'aaa.bbb' #108
  • ActiveRow: optimization
  • tested on AppVeyor
  • __toString handles Throwable errors

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

Nette
v2.3.8

3. 12. 2015

  • compatiblity with PHP 7, supports Throwable etc…
  • Route: action is mandatory when defined as 'Presenter:'
  • UIMacros: better error message
  • TracyBridge: prints template name although is not file
  • Configurator: DI container cache key depends on PHP minor version
  • Cache: fixed deadlock when exception is thrown in fallback nette/caching#36
  • CacheMacro: added warning Modifiers are not allowed here
  • Selection::insert() fixed delimiting of FQN sequence name like 'aaa.bbb' nette/database#108
  • ActiveRow: optimization
  • tested on AppVeyor
  • DI: Compiler, CompilerExtension: shows suggestions for unexpected config items and extensions, better error message
  • FormMacros: added warnings Modifiers are not allowed here
  • Form::$onSuccess and Container::$onValidate must be array of Traversable
  • netteForms: updated regexp for URL and email validation nette/nette#1539 nette/nette#1540
  • SmtpMailer: used stream_socket_client instead of fsockopen nette/mail#19
  • Messages: fixed regexp for propagating links nette/mail#18
  • PhpGenerator: ClassType, Method: class types are not resolved when namespace is not specified nette/php-generator#21
  • Strings::toAscii() optimization
  • ObjectMixin::getSuggestion() better balance, replacement of prefix get|set|add|has|is costs 20
  • Callback::invokeSafe() removes function name also with arguments from error message
  • Latte Parser: used possessive quantifiers and atomic grouping (prevents 500 error)
  • Engine: throws CompileException when template contains parse error
  • CoreMacros: {else if} throws warning "Did you mean {elseif}"
  • Macroset: checks for allowed arguments
  • Latte Filters: improved HTML comments escaping nette/latte#87
  • Debugger: reserves some memory that is used when error "Allowed Memory Exhausted" occurs
  • Debugger: cleans output buffers on strictMode error
  • Debugger: error exit code changed from 254 to 255 for Error
  • Debugger: more readable exceptions in console
  • Helpers::editorUri default $line is 1; line is required by open-editor.js
  • Dumper: fixed live-dumping of floats like '1.0'
  • bluescreen: bigger exception/error message

For the details you can have a look at: application, bootstrap, caching, database, deprecated, di, forms, mail, php-generator, utils, latte + previous, tracy + previous.

Nette
v2.2.12

3. 12. 2015

  • compatiblity with PHP 7, supports Throwable etc…
  • Route: action is mandatory when defined as 'Presenter:'
  • Cache: fixed deadlock when exception is thrown in fallback
  • ControlGroup::add() validation fixed; typos
  • netteForms.js: validator 'equal' compares values as PHP strings
  • netteForms.js: fixed freeze browser on email validation nette/nette#1540
  • netteForms: updated regexp for URL and email validation nette/nette#1539
  • SmtpMailer: improved exception message on write failure
  • Neon Encoder: removed trailing spaces nette/neon#20
  • Neon Decoder: fixed support for hex numbers in PHP 7
  • Validator::is: fixed value overwriting
  • Random: use random_int() on PHP 7
  • Random: charlist now contains only unique characters
  • Random: rejects openssl_random_pseudo_bytes result when is not cryptographically strong
  • Random: skips microtime(), str_shuffle() and lcg_value() when cryptographically strong source is used
  • Image: fixed color allocation in palette-based images
  • Latte Parser: used possessive quantifiers and atomic grouping
  • Latte Filters: improved HTML comments escaping #87
  • Latte microoptimizations
  • BlockMacros: fixed triming of block nette/latte#83
  • BlockMacros: fixed child template without block nette/latte#80
  • added Helpers::getClass() class name can contain control characters in PHP 7
  • Helpers::editorUri default $line is 1; line is required by open-editor.js
  • Helpers::editorLink() improved way how file names are shortened

For the details you can have a look at: application, caching, forms, mail, neon, utils, latte + previous, tracy.

Nette
v2.1.12

3. 12. 2015

This release marks the end of life of the Nette 2.1 series. All users are encouraged to upgrade to the current stable version.

  • compatiblity with PHP 7, supports Throwable etc…
  • Image: fixed color allocation in palette-based images
  • Validator::is: fixed value overwriting
  • Route: action is mandatory when defined as 'Presenter:'
  • Control: global snippet changed from NULL to \0 to be distinguished from ''
  • UIMacros: {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7
  • Templating: improved HTML comments escaping nette/latte#87
  • Latte Parser: fixed substr_count() error on empty string
  • Debugger: support for PHP7 Throwable
  • __toString handles Throwable errors
  • Cache::save() handles Throwable errors
  • Cache: fixed deadlock when exception is thrown in fallback
  • Fix FileUpload::move($dest) when low permission to chmod
  • netteForms.js: updated to v2.2

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

Application
v2.3.8

3. 12. 2015

  • Route: action is mandatory when defined as 'Presenter:'
  • UIMacros: better error message
  • __toString and router serialization handles Throwable errors

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

Latte
v2.2.9

3. 12. 2015

  • Parser: used possessive quantifiers and atomic grouping
  • Engine::renderToString handles Throwable errors
  • Filters: improved HTML comments escaping #87
  • PhpWriter, CoreMacros: microoptimizations

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

Tracy
v2.2.9

3. 12. 2015

  • bar.css: fixed width of H1 #124
  • support for PHP7 Throwable
  • added Helpers::getClass() class name can contain control characters in PHP 7
  • Helpers::editorUri default $line is 1; line is required by open-editor.js
  • Helpers::editorLink() improved way how file names are shortened

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

Utils
v2.2.8

3. 12. 2015

  • Callback::invokeSafe() removes function name also with arguments from error message
  • Callback::invokeSafe() workaround for HHVM bug facebook/hhvm#4625
  • __toString and Callback::invokeSafe() handles Throwable errors
  • Validator::is: fixed value overwriting
  • Random: use random_int() on PHP 7
  • Random: charlist now contains only unique characters
  • Random: rejects openssl_random_pseudo_bytes result when is not cryptographically strong
  • Random: skips microtime(), str_shuffle() and lcg_value() when cryptographically strong source is used
  • Image: fixed color allocation in palette-based images

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

Neon
v2.2.6

3. 12. 2015

  • Encoder: removed trailing spaces #20
  • Decoder: fixed support for hex numbers in PHP 7

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

Mail
v2.2.5

3. 12. 2015

  • SmtpMailer: improved exception message on write failure

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

Forms
v2.2.8

3. 12. 2015

  • ChoiceControl, MultiChoiceControl: renamed 'range' to 'set' in exception
  • ControlGroup::add() validation fixed; typos
  • netteForms.js: validator 'equal' compares values as PHP strings
  • netteForms.js: fixed freeze browser on email validation nette/nette#1540
  • netteForms: updated regexp for URL and email validation nette/nette#1539
  • __toString handles Throwable errors

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

Caching
v2.2.7

3. 12. 2015

  • Cache: fixed deadlock when exception is thrown in fallback #36

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

Application
v2.2.9

3. 12. 2015

  • Route: action is mandatory when defined as 'Presenter:'
  • __toString handles Throwable errors
  • typos, fixed coding style

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

Php Generator
v2.3.5

2. 12. 2015

  • ClassType, Method: class types are not resolved when namespace is not specified [#21]

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

Latte
v2.3.8

2. 12. 2015

  • better error messages
  • Engine::renderToString handles Throwable errors
  • Engine: improved exception info when template contains parse error

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

Di
v2.3.7

2. 12. 2015

  • Compiler, CompilerExtension: shows suggestions for unexpected config items and extensions
  • ContainerBuilder: better message

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

Bootstrap
v2.3.4

30. 11. 2015

  • TracyBridge: prints template name although is not file
  • Configurator: DI container cache key depends on PHP minor version

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

Caching
v2.3.4

30. 11. 2015

  • Cache: fixed deadlock when exception is thrown in fallback #36
  • Cache::save() handles Throwable errors
  • CacheMacro: added warning Modifiers are not allowed here

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

Caching
v2.4.2

30. 11. 2015

  • SQLite: Removed connection persistence.
  • FileJournal: deprecated

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

Caching
v2.4.3

30. 11. 2015

  • SQLiteJournal: optimizations #34
  • SQLiteJournal: fixed bug with keys with multiple priority #35
  • Cache: fixed deadlock when exception is thrown in fallback #36
  • Cache::save() handles Throwable errors
  • CacheMacro: added warning Modifiers are not allowed here

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

Forms
v2.3.6

30. 11. 2015

  • FormMacros: added warnings Modifiers are not allowed here
  • Form::$onSuccess and Container::$onValidate must be array of Traversable
  • netteForms: updated regexp for URL and email validation nette/nette#1539 nette/nette#1540

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

Mail
v2.3.4

30. 11. 2015

  • SmtpMailer: used stream_socket_client instead of fsockopen #19
  • Messages: fixed regexp for propagating links #18

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

Latte
v2.3.7

30. 11. 2015

  • Parser: used possessive quantifiers and atomic grouping
  • Engine: throws CompileException when template contains parse error
  • CoreMacros: {else if} throws warning "Did you mean {elseif}"
  • Macroset: checks for allowed arguments
  • Filters: improved HTML comments escaping #87
  • Helpers::getSuggestion() better balance. Replacement is more expensive than insertion/deletion.

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

Utils
v2.3.7

30. 11. 2015

  • Strings::toAscii() optimization
  • ObjectMixin::getSuggestion() better balance, replacement of prefix get|set|add|has|is costs 20
  • ObjectMixin::getSuggestion() better balance. Replacement is more expensive than insertion/deletion.
  • __toString and Callback::invokeSafe() handles Throwable errors
  • Callback::invokeSafe() removes function name also with arguments from error message

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

Tracy
v2.3.7

30. 11. 2015

  • compatible with PHP 7
  • bar.css: fixed width of H1 #124
  • Debugger: allowed using stream wrappers as log directory #125
  • Debugger: reserves some memory that is used when error "Allowed Memory Exhausted" occurs
  • Bar, Debugger: handles Throwable errors
  • Debugger: cleans output buffers on strictMode error
  • Debugger: error exit code changed from 254 to 255 for Error
  • Debugger: more readable exceptions in console
  • Helpers::getSuggestion() better balance. Replacement is more expensive than insertion/deletion.
  • Helpers::editorUri default $line is 1; line is required by open-editor.js

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

Tracy
v2.3.6

28. 10. 2015

  • Dumper: fixed live-dumping of floats like '1.0'
  • dumper.js: fixed collapseCount counting
  • bluescreen: added exception/error message to <title>
  • bluescreen: bigger exception/error message
  • Helpers::improveException() ignores namespace before function

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

Tester
v1.6.1

26. 10. 2015

This release fixes issue of TestCase::tearDown() double calling:

  • TestCase: ignore muted errors in testMethod() #266

For more information see documentation and changelog.

Tester
v1.6.0

19. 10. 2015

  • Assert: added noError() assertion #250
  • Assert: added custom fail descriptions
  • TestCase: annotation @throws is applied to testMethods() only, not to setUp() nor tearDown() (BC break) #238
  • TestCase: is not masking setUp() and tearDown() exceptions
  • TestCase: tearDown() is called even on error in test method #254 #255
  • CliTester: explicit html_errors=off for TAP & Junit outputs #256
  • Dumper::toPhp() better support for anonymous classes and Closures

For more information see documentation and changelog.

Nette
v2.3.7

12. 10. 2015

„Did you mean?“ feature

  • Database Row, ActiveRow: shows suggestions for undeclared columns
  • Tracy: shows suggestions for some errors and notices (see)
  • Nette\Object: suggestions for undeclared methods and properties (see)
  • Latte: missing macros and filters
  • component Container: shows suggestions for missing components

Application

  • RoutingPanel: redesign, added HTTP method
  • Presenter: better exception messages
  • PresenterComponentReflection::convertType() support for all built-in PHP typehints
  • PresenterComponentReflection::convertType() converts NULL to appropriate type
  • added Nette\Application\Responses\CallbackResponse
  • ErrorPresenter: returns CallbackResponse
  • removed rarely used @property phpDoc

Database

  • Selection: Fixed infinite loop when accessing to deleted row
  • SqlsrvDriver: support for limit and offset on SQL Server 2012
  • drivers: fixed applyLimit for $limit = 0
  • drivers: applyLimit() throws exception for negative values (but not when you use page())
  • Selection: fixed bug with zero in primary key
  • Selection: referenced cache cleared only for root selection (not in GroupedSelection)
  • SqlsrvDriver::applyLimit(): supports keywords DISTINCT and ALL after SELECT
  • SqlBuilder: removed "AS" keyword in JOINs
  • Structure: added columns analyze for views

DI

  • ContainerBuilder: added support for PHP7 type hints
  • DecoratorExtension: implemented decorating by factory interface
  • PhpExtension: NULLs are skipped.
  • NeonAdapter: fixed dump() for data with simple Nette\DI\Statement

Forms

  • CheckboxList: added containerPrototype and itemLabelPrototype
  • FormMacros: added warnings Modifiers are not allowed here
  • Form::$onSuccess and Container::$onValidate must be array or Traversable
  • netteForms: updated regexp for URL and email validation

Mail

  • Message: propagates links target from HTML message to plaintext version

PhpGenerator

  • added support for anonymous classes
  • Method, Parameter: added support for PHP 7 type hints
  • Method, Parameter, Property: added constructors
  • PhpNamespace::unresolveName() supports for built-in types and PHP 7 types

Tracy

  • Debugger::barDump() dumps basic location by default
  • Helpers::editorLink() improved way how file names are shortened
  • Logger: fixed severity in formatMessage()
  • fixes for PHP 7, added new examples

Latte

  • added warnings: Modifiers are not allowed here
  • BlockMacros: fixed trimming of block
  • BlockMacros: fixed child template without block
  • Parser: fixed substr_count() error on empty string

Utils

  • Random: use random_int() on PHP 7
  • Random: charlist now contains only unique characters
  • Random: rejects openssl_random_pseudo_bytes result when it is not cryptographically strong
  • Image: fixed color allocation in palette-based images
  • ObjectMixin: added getExtensionMethods()
  • ObjectMixin: added warning when method-getter is used by mistake (for getters without parameters) (BC break) See note.

Sandbox

  • Error & Error4xx presenters

For the details you can have a look at: application, component-model, database + previous, di, forms, mail, php-generator + previous, utils + previous, latte, tracy.

Database
v2.3.7

9. 10. 2015

  • Selection: Fixed infinite loop when accessing to deleted row
  • SqlsrvDriver: support for limit and offset on SQL Server 2012
  • drivers: fixed applyLimit for $limit = 0
  • drivers: applyLimit() throws exception for negative values (but not when you use page())

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

Utils
v2.3.6

9. 10. 2015

ObjectMixin: added warning when method-getter is used by mistake (for getters without parameters) (BC break)

Note: This release will trigger warning Did you forgot parentheses? when you call a method without parentheses, i.e. foreach ($form–>getErrors as $error).

This notation is also used to create a callback. If you really want to create a callback, i.e. parentheses have not been forgotten and they are missing intentionally, replace this notation with a native PHP callback, for example [$form, 'getErrors']. Alternatively in PHP 5.3 you can use shutup operator: @$form->getErrors.

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

Latte
v2.2.8

9. 10. 2015

  • Parser: fixed substr_count() error on empty string #79
  • BlockMacros: fixed triming of block #83
  • BlockMacros: fixed child template without block #80
Latte
v2.3.6

9. 10. 2015

  • added suggestions for Object, macros, filters and blocks
  • added warnings: Modifiers are not allowed here
  • BlockMacros: fixed triming of block #83
  • BlockMacros: fixed child template without block #80
  • Parser: fixed substr_count() error on empty string #79
  • Object: slightly changed exception messages, added __callStatic
  • some fixes

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

Application
v2.3.7

9. 10. 2015

  • RoutingPanel: redesign, added HTTP method
  • Presenter: better exception messages
  • PresenterComponentReflection::convertType() support for all builtin PHP typehints
  • PresenterComponentReflection::convertType() converts NULL to appropriate type
  • added CallbackResponse
  • ErrorPresenter: returns CallbackResponse
  • UIMacros: added warning Modifiers are not allowed here
  • removed rarely used @property phpDoc

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

Component Model
v2.2.4

9. 10. 2015

  • Container: shows suggestions for missing components

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

Mail
v2.3.3

9. 10. 2015

  • Message: propagates links target from HTML message to plaintext version

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

Php Generator
v2.3.4

9. 10. 2015

  • ClassType::from() fixes for ReflectionObject
  • added support for anonymous classes
  • Helpers::dump() throws exception for closures
  • PhpFile::__toString(): brackets are no longer set when generating classes from global namespace only

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

Tracy
v2.3.5

9. 10. 2015

  • Debugger: shows suggestions for some errors and notices (see)
  • Debugger::barDump() dumps basic location by default
  • Helpers::editorLink() improved way how file names are shortened
  • Logger: fixed severity in formatMessage()
  • fixes for PHP 7
  • added new examples

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

Di
v2.3.6

14. 9. 2015

  • ContainerBuilder: added support for PHP7 type hints
  • DecoratorExtension: implemented decorating by factory interface
  • PhpExtension: NULLs are skipped.
  • NeonAdapter: fixed dump() for data with simple Nette\DI\Statement

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

Php Generator
v2.3.3

14. 9. 2015

  • Method, Parameter: added support for PHP 7 type hints
  • Method, Parameter, Property: added and used constructors
  • PhpNamespace::unresolveName() supports for build-in types
  • ClassType: prints one 'use' keyword per trait
  • Method::setParameters() & ClassType::setProperties() & setMethods() retain names in keys

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

Database
v2.3.6

14. 9. 2015

  • Row, ActiveRow: shows suggestions for undeclared columns
  • Selection: fixed bug with zero in primary key
  • Selection: referenced cache cleared only for root selection (not in GroupedSelection)
  • SqlsrvDriver::applyLimit(): supports keywords DISTINCT and ALL after SELECT
  • SqlBuilder: removed "AS" keyword in JOINs
  • Structure: added columns analyze for views

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

Utils
v2.3.5

14. 9. 2015

  • ObjectMixin: shows suggestions for undeclared members
  • ObjectMixin: added getExtensionMethods()
  • Random: use random_int() on PHP 7
  • Random: charlist now contains only unique characters
  • Random: rejects openssl_random_pseudo_bytes result when is not cryptographically strong
  • Random: skips microtime(), str_shuffle() and lcg_value() when cryptographically strong source is used
  • Image: fixed color allocation in palette-based images

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

Nette
v2.3.5

23. 8. 2015

Nette Framework 2.3.5 has just been released.

  • Presenter: fixed signal in POST in ajax request
  • Selection: added fetchField()
  • Structure: added rebuild when table not exists in cache
  • Structure: throws proper exception when table doesn't exists
  • Neon\Encoder: added support for entity chaining
  • PhpGenerator, added support for build-in types callable, self, parent, better whitespace usage
  • Strings: added const for trim method whitespace charset
  • Json: accept whitespace-surrounded "null" for decode() as it is a valid JSON text
  • Image: fix exception message
  • Html, Latte: chars '<' in attributes are encoded in XHTML
  • Latte\Engine: added warmupCache()
  • Debugger Bar: fixed dragging in Firefox when cursor leaves the browser window
  • BlueScreen: collapse paths usable with files
  • Logger: better readability of exception file name

For the details you can have a look at the diffs: application, database, neon, php-generator, utils, latte, tracy.

Neon
v2.3.3

23. 8. 2015

  • Encoder: added support for entity chaining #21

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

Database
v2.3.5

23. 8. 2015

  • Selection: emptyResultSet invalidates referenced cache
  • Selection: added fetchField()
  • Structure: added rebuild when table not exists in cache - #79
  • Structure: throws proper exception when table doesn't exists - #79

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

Application
v2.3.5

23. 8. 2015

  • Presenter: fixed signal in POST in ajax request
  • Presenter: added test for initGlobalParameters
  • travis: migrating to container-based infrastructure

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

Application
v2.2.8

23. 8. 2015

  • Presenter: fixed signal in POST in ajax request
  • Presenter: added test for initGlobalParameters

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

Application
v2.2.7

23. 8. 2015

  • ErrorPresenter: exception is logged to 'exception.log'
  • Control: global snippet changed from NULL to \0 to be distinguished from ''
  • UIMacros: {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7, fixed test
  • travis: migrating to container-based infrastructure
  • improved coding style

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

Bootstrap
v2.3.3

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Bootstrap
v2.3.2

23. 8. 2015

  • Configurator: DecoratorExtension is called after ApplicationExtension to allow decorate presenters

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

Bootstrap
v2.3.1

23. 8. 2015

  • Configurator: param tempDir is passed to ApplicationExtension

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

Bootstrap
v2.2.6

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Bootstrap
v2.2.5

23. 8. 2015

  • NetteExtension: avoid autoloading of FileStorage when not required
  • NetteExtension: headers are not send and session is not started in CLI mode
  • Configurator::setDebugMode() accepts only array|string|bool
  • Configurator: TracyBridge is called in enableDebugger()
  • TracyBridge: fixed quirky htmlspecialchars in PHP 5.6

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

Caching
v2.4.1

23. 8. 2015

  • SQLiteJournal: Atomic operations added back [Rel #25]
  • SQLiteJournal: 'Too many variables' bug fixed #25
  • travis: migrating to container-based infrastructure
  • improved coding style

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

Caching
v2.3.3

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Caching
v2.2.6

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Component Model
v2.2.3

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Component Model
v2.2.2

23. 8. 2015

  • Component: attached() is called only once for each object #2

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

Database
v2.3.4

23. 8. 2015

  • Helpers::loadFromFile() uses native exec() without logging and creating result set
  • Selection: fixed exception namespace
  • travis: migrating to container-based infrastructure
  • improved coding style

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

Database
v2.3.3

23. 8. 2015

  • Selection: Related prototype depends on specific cache key

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

Database
v2.3.2

23. 8. 2015

  • ResultSet: parameters are passed to statement via bindValue with correct type #63
  • Selection::fetchAssoc fix
  • Table: fixed infinite recursion when using StaticConventions and trying to access undefined column

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

Database
v2.3.1

23. 8. 2015

  • ActiveRow: added support to update primary columns via update() #57 #58
  • added support for objects DateInterval via ISupplementalDriver::formatDateInterval() #56
  • Revert "SqlPreprocessor: fixed IN (?) with empty array"
  • Table: fixed Selection::getReferencedTable() always refetching when primary is NULL

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

Database
v2.2.5

23. 8. 2015

  • Helpers::loadFromFile() uses native exec() without logging and creating result set
  • Selection: Related prototype depends on specific cache key
  • Table: fixed Selection::getReferencedTable() always refetching when primary is NULL
  • travis: migrating to container-based infrastructure
  • improved coding style

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

Database
v2.2.4

23. 8. 2015

  • SqlBuilder: uses delimited table name #49
  • ConnectionPanel: generates unique ID across requests
  • ConnectionPanel refactoring, used templates
  • Connection: undeprecated some methods, partially reverts commit 88184104
  • PgSqlDriver: fixed formatLike() #46
  • SqlBuilder: table and column names in joins can begin with number or underscore
  • ConnectionPanel: fixed quirky htmlspecialchars in PHP 5.6

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

Di
v2.3.5

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Di
v2.3.4

23. 8. 2015

  • ContainerBuilder::removeDefinition() fixed keys in $classes #72
  • ContainerBuilder: removeDefinition removes definition from $classes #71
  • Compiler: fixed "array to string conversion" while service name is generated

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

Di
v2.3.3

23. 8. 2015

  • ContainerBuilder: fixed reseting of $currentService #70

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

Di
v2.3.2

23. 8. 2015

  • InjectExtension: fixed exception type

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

Di
v2.3.1

23. 8. 2015

  • Support for inject methods and properties moved to InjectExtension
  • ContainerPanel: display compilation time when container is compiled
  • Compiler::addExtensions disallows to replace extensions
  • Compiler: extension without parameters is allowed now

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

Di
v2.2.6

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Di
v2.2.5

23. 8. 2015

  • ContainerBuilder: fixed reseting of $currentService #70

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

Di
v2.2.4

23. 8. 2015

  • ContainerFactory: fixed thread-safety issues
  • Compiler: service name must not be "0"

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

Finder
v2.2.2

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Finder
v2.3.1

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Forms
v2.3.4

23. 8. 2015

  • Helpers::createSelectBox: added parameter $selected
  • ChoiceControl, MultiChoiceControl: added $checkAllowedValues #28
  • ChoiceControl, MultiChoiceControl: renamed 'range' to 'set' in exception
  • travis: migrating to container-based infrastructure
  • improved coding style

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

Forms
v2.3.3

23. 8. 2015

  • FormMacros: added support for <label n:name /> Checkbox label with caption rendering
  • CheckboxList, RadioList: fixed rendering of <label n:name>
  • netteForms.js: fixed toggle in IE < 9
  • netteForms.js: works only with Nette forms #82

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

Forms
v2.3.2

23. 8. 2015

  • netteForms.js: toggleControl() binds events on all inputs #75
  • netteForms.js: fixed getValue for radio list #73 and multi select box
  • FormMacros: <label n:name></label> is rendered without caption, fixes 6d16631
  • Form::fireEvents() calls onError even after last onSuccess handler
  • RadioList & CheckboxList: getControlPart() normalizes key type #76 #78

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

Forms
v2.3.1

23. 8. 2015

  • netteForms.js: used form.elements.namedItem(…) instead of form.elements[…] #72
  • netteForms: supports Common.JS and AMD loading #69
  • FormMacros: added support for <button>
  • FormMacros: empty <label n:name /> displays caption, as {label /}

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

Forms
v2.2.7

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style
  • netteForms.js: fixed toggle in IE < 9

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

Forms
v2.2.6

23. 8. 2015

  • netteForms.js: toggleControl() binds events on all inputs #75
  • netteForms.js: fixed getValue for radio list #73 and multi select box
  • Form::fireEvents() calls onError even after last onSuccess handler
  • RadioList & CheckboxList: getControlPart() normalizes key type #76 #78
  • netteForms.js: used form.elements.namedItem(…) instead of form.elements[…] #72

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

Forms
v2.2.5

23. 8. 2015

  • netteForms.js: fixed bug in toggleControl from 88719742
  • netteForms.js: Fixed "Uncaught TypeError: Cannot read property 'tagName' of undefined"
  • netteForms.js: validator 'float' converts value to float, 'url' prepends 'http://' nette/nette#1430 nette/nette#1462
  • netteForms.js: ignore fieldsets (and eventually other non-control elements) in form.elements
  • netteForms.js: add webalize() support for ô ä ľ characters
  • netteForms.js: fixed length validation on checkbox list with exactly 1 item #59
  • netteForms.js: validator 'filled' for [] returns false
  • netteForms.js: textarea is not trimmed
  • DefaultFormRenderer: automatically sets setOption('rendered', TRUE)
  • Helpers: fixed quirky htmlspecialchars in PHP 5.6

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

Http
v2.3.3

23. 8. 2015

  • Session: session ID is not regenerated when not set
  • travis: migrating to container-based infrastructure
  • improved coding style

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

Http
v2.3.2

23. 8. 2015

  • Helpers: fixed ipMatch() for IPv4 #61

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

Http
v2.3.1

23. 8. 2015

  • Url: fixed isEqual() for same param values & regular sorting on numbers

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

Http
v2.2.8

23. 8. 2015

  • Helpers: fixed ipMatch() for IPv4 #61
  • Session: session ID is not regenerated when not set
  • travis: migrating to container-based infrastructure
  • improved coding style

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

Http
v2.2.7

23. 8. 2015

  • Url: fixed isEqual() for same param values & regular sorting on numbers

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

Http
v2.2.6

23. 8. 2015

  • HttpRequest: drops non-UTF8 strings, but control characters only removes
  • Session: fetch session cookie from Http\IRequest
  • Session: fix handling exceptions thrown from SessionHandlerInterface
  • Session::configure() do not override setHandler #15 #18
  • SessionPanel: fixed quirky htmlspecialchars in PHP 5.6
  • Response: fixed quirky htmlspecialchars in PHP 5.6
  • Url: fixed canonicalize()

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

Latte
v2.3.4

23. 8. 2015

  • Engine: added warmupCache() #74
  • Filters::htmlAttributes: chars '<' in attributes are encoded in XHTML
  • travis: migrating to container-based infrastructure

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

Latte
v2.2.7

23. 8. 2015

  • Filters::htmlAttributes: chars '<' in attributes are encoded in XHTML

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

Latte
v2.2.6

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • BlockMacros: {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7
  • improved coding style

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

Mail
v2.2.4

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Neon
v2.3.2

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style
  • Decoder: fixed support for hex numbers in PHP 7

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

Neon
v2.3.1

23. 8. 2015

  • Encoder: removed trailing spaces #20

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

Neon
v2.2.5

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Php Generator
v2.3.2

23. 8. 2015

  • Method::from() added support for closures & global functions
  • fixed inconsistencies between 'nullable string' and 'string' properties
  • fixed content for properties $documents
  • ClassType::__toString() refactoring
  • Method, Parameter: added support for build-in types callable, self, parent
  • Method, ClassType: better whitespace usage

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

Php Generator
v2.3.1

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Php Generator
v2.2.3

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Php Generator
v2.2.2

23. 8. 2015

  • added Helpers::MAX_DEPTH
  • phpDocs: new line after multiline docs removed

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

Reflection
v2.2.2

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Reflection
v2.3.1

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Robot Loader
v2.2.2

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Robot Loader
v2.3.1

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Safe Stream
v2.3.1

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • typos

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

Safe Stream
v2.2.1

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • typos

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

Security
v2.2.4

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Security
v2.3.1

23. 8. 2015

  • travis: migrating to container-based infrastructure
  • improved coding style

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

Security
v2.2.3

23. 8. 2015

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

Tokenizer
v2.2.3

23. 8. 2015

  • improved coding style
  • travis: migrating to container-based infrastructure

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

Tracy
v2.2.8

23. 8. 2015

  • bar.js: fixed dragging in Firefox when cursor leaves the browser window
  • bar.css: added text-shadow reset
  • travis: migrating to container-based infrastructure
  • improved coding style

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

Tracy
v2.3.4

23. 8. 2015

  • bar.js: fixed dragging in Firefox when cursor leaves the browser window
  • BlueScreen: collapse paths usable with files [Closes #115]
  • Logger: better readability of exception file name
  • travis: migrating to container-based infrastructure

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

Utils
v2.2.5

23. 8. 2015

  • Image::place() fixed unexpected output with transparency image #56
  • Image: better exception message [Closes #42]
  • Strings::webalize() converts non-breaking space … ™ ® etc in glibc mode
  • Validators::isUrl: backslashes in regexp escaped
  • Validators::isUrl: underscored subdomain support added
  • Strings::toAscii() removes \x80-\xFF chars
  • Strings::toAscii() converts degree sign to ^
  • Html: fixed quirky htmlspecialchars in PHP 5.6

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

Utils
v2.2.6

23. 8. 2015

  • Strings::toAscii() uses //IGNORE

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

Utils
v2.2.7

23. 8. 2015

  • Html: chars '<' in attributes are encoded in XHTML
  • travis: migrating to container-based infrastructure
  • Random: /dev/urandom is not used on Windows
  • improved coding style

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

Utils
v2.3.1

23. 8. 2015

  • Strings::toAscii() uses //IGNORE

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

Utils
v2.3.2

23. 8. 2015

  • Strings: added after() and before() (thanks @icaine) [Closes #20]
  • Arrays: added pick() - picks element from the array by key and return its value [Closes #54]
  • Random: fixed generating zero-length string with mcrypt
  • Image::fromString() undeprecated argument $format

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

Utils
v2.3.3

23. 8. 2015

  • Callback::invokeSafe() removes function name from error message
  • Callback::invokeSafe() workaround for HHVM bug facebook/hhvm#4625
  • Random: /dev/urandom is not used on Windows
  • improved coding style
  • travis: migrating to container-based infrastructure

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

Utils
v2.3.4

23. 8. 2015

  • Strings: added const for trim method whitespace charset
  • Json: accept whitespace-surrounded "null" for decode() as it is a valid JSON text
  • Image: fix exception message [Closes #71]
  • Html: chars '<' in attributes are encoded in XHTML

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

Nette
v2.2.11

23. 8. 2015

Nette Framework 2.2.11 has just been released.

  • improved coding style
  • Presenter: fixed signal in POST in ajax request
  • Presenter: added test for initGlobalParameters
  • netteForms.js: fixed toggle in IE < 9
  • Html & Latte: chars '<' in attributes are encoded in XHTML
  • Random: /dev/urandom is not used on Windows
  • Tracy: fixed dragging in Firefox when cursor leaves the browser window
  • travis: migrating to container-based infrastructure

For the details you can have a look at the diffs: application, bootstrap, caching, di, finder, forms, mail, neon, php-generator, reflection, robot-loader, security, utils, latte, tracy.

Nette
v2.1.11

15. 8. 2015

  • Html: chars '<' in attributes are encoded in XHTML
  • Helpers: fixed ipMatch() for IPv4 [closes nette/http#61]
  • Random: /dev/urandom is not used on Windows
  • bar.js: fixed dragging in Firefox when cursor leaves the browser window
  • ErrorPresenter: exception is logged to 'exception.log'
  • improved coding style

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

Nette
v2.3.4

20. 7. 2015

Nette Framework 2.3.4 has just been released.

  • improved coding style
  • travis: migrating to container-based infrastructure
  • travis: testing with lowest dependencies
  • Control: global snippet changed from NULL to \0 to be distinguished from ''
  • UIMacros: {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7
  • UIMacros: runtime helpers moved to UIRuntime
  • ApplicationExtension: missing RobotLoader throws exception
  • Database\Helpers::loadFromFile() uses native exec() without logging and creating result set
  • Selection: fixed exception namespace
  • Forms\Helpers::createSelectBox: added parameter $selected
  • ChoiceControl, MultiChoiceControl: added $checkAllowedValues
  • ChoiceControl, MultiChoiceControl: renamed 'range' to 'set' in exception
  • Session: session ID is not regenerated when not set
  • added Mail\SendException
  • Callback::invokeSafe() workaround for HHVM bug facebook/hhvm#4625
  • Callback::invokeSafe() removes function name from error message
  • Random: /dev/urandom is not used on Windows
  • PhpWriter, CoreMacros: microoptimizations
  • Tracy: support for PHP7 Throwable
  • Logger::getExceptionFile() is public
  • Bar: live data for previous request are stored in session
  • bar.css: added text-shadow reset

For the details you can have a look at the diffs: application, bootstrap, caching, component-model, database, deprecated, di, finder, forms, http, mail, neon, php-generator, reflection, robot-loader, safe-stream, security, tokenizer, utils, latte, tracy.

Nette
v2.2.10

20. 7. 2015

Nette Framework 2.2.10 has just been released.

  • improved coding style
  • ErrorPresenter: exception is logged to 'exception.log'
  • Control: global snippet changed from NULL to \0 to be distinguished from ''
  • UIMacros: {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7
  • Component: attached() is called only once for each object
  • Database\Helpers::loadFromFile() uses native exec() without logging and creating result set
  • Selection: Related prototype depends on specific cache key
  • Table: fixed Selection::getReferencedTable() always refetching when primary is NULL
  • Session: session ID is not regenerated when not set
  • Http\Helpers: fixed ipMatch() for IPv4

For the details you can have a look at the diffs: application, component-model, database, http, safe-stream, tokenizer, latte.

Tester
v1.5.0

16. 7. 2015

  • support for PHP7 Throwable
  • added Job::getErrorOutput() & PhpInterpreter::getErrorOutput() for PHP startup errors [Closes #229][Closes #230]
  • CloverXMLGenerator: fixed report statements from not loaded files [Closes #220]
  • DomQuery: fixed css2xpath for brackets in selector [Closes #235]

For more information see documentation and changelog.

Application
v2.3.4

3. 7. 2015

  • Control: global snippet changed from NULL to \0 to be distinguished from ''
  • UIMacros: {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7
  • UIMacros: runtime helpers moved to UIRuntime
  • PresenterComponentReflection::convertType() do not change $val on error, added tests
  • ApplicationExtension: missing RobotLoader throws exception [Closes #78]
  • improved coding style

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

Mail
v2.3.2

3. 7. 2015

  • added SendException [Closes #13]
  • improved coding style

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

Mail
v2.3.1

3. 7. 2015

  • Message: added getAttachments() [Closes #11]
  • SmtpMailer: improved exception message on write failure

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

Latte
v2.3.3

3. 7. 2015

  • {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7
  • improved coding style
  • PhpWriter, CoreMacros: microoptimizations

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

Latte
v2.3.2

3. 7. 2015

  • HtmlNode::$isEmpty is TRUE for shortcuts like <textarea /> in HTML mode

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

Latte
v2.3.1

3. 7. 2015

  • {dump} updated for 2.3
  • whitespace moved after closing tag for shortcuts like <element />
  • <script> with type text/json is escaped as javascript

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

Latte
v2.2.5

3. 7. 2015

  • whitespace moved after closing tag for shortcuts like <element />
  • fixed syntax=off
  • added Engine::VERSION
  • some fixes

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

Tracy
v2.3.3

3. 7. 2015

  • Bar: live data for previous request are stored in session [Closes #112]
  • support for PHP7 type Throwable
  • improved coding style
  • some fixes
Nette
v2.3.3

17. 6. 2015

We would like to announce the Nette Framework 2.3.3 containing these improvements:

  • Configurator: DecoratorExtension is called after ApplicationExtension to allow decorate presenters
  • Component: attached() is called only once for each object
  • Database: Selection: Related prototype depends on specific cache key
  • DI: ContainerBuilder::removeDefinition() removes definition from $classes
  • netteForms.js: works only with Nette forms, fixed toggle in IE < 9
  • Checkbox, CheckboxList, RadioList: fixed rendering of and
  • Nette\Http\Helpers: fixed bug in ipMatch() for IPv4
  • SmtpMailer: improved exception message on write failure
  • Nette\Mail\Message: added getAttachments()
  • Image::fromString() undeprecated argument $format
  • Arrays: added pick() - picks element from the array by key and return its value
  • Strings: added after() and before()

For the details you can have a look at the diffs: bootstrap, component-model, database, di, forms, http, mail, utils.

Caching
v2.4.0

17. 6. 2015

  • added SQLiteJournal
  • CacheExtension: default journal changed to SQLiteJournal
  • requires PHP 5.4.4 or newer
Application
v2.3.3

14. 6. 2015

  • PresenterComponent::redirect() fixed compatibility with HHVM & PHP 7
  • Presenter: "query" link syntax is undeprecated
  • LinkGenerator: fixed exception namespace

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

Application
v2.3.2

14. 6. 2015

  • PresenterComponentReflection::parseAnnotation accepts *@annotation
  • FileResponse: works according to RFC 5987
  • MicroPresenter: fixed passing params to callback
  • ApplicationExtension: uses file in temp dir to invalidate container

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

Application
v2.3.1

14. 6. 2015

  • UIMacros: {ifCurrent} calls isLinkCurrent() method

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

Application
v2.2.6

14. 6. 2015

  • PresenterComponent::redirect() fixed compatibility with HHVM & PHP 7
  • FileResponse: works according to RFC 5987

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

Application
v2.2.5

14. 6. 2015

  • Router: speed optimizations
  • MicroPresenter: fixes
  • UIMacros: {ifCurrent} calls isLinkCurrent() method

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

Nette
v2.1.10

6. 5. 2015

  • Url: fixed isEqual() for same param values & regular sorting on numbers
  • SQLiteStorage: fixed transaction execution
  • HttpRequest: drops non-UTF8 strings, but control characters only removes
  • Configurator::setDebugMode() accepts only array|string|bool
  • Latte: whitespace moved after closing tag for shortcuts like
  • ContainerBuilder: fixed reseting of $currentService [Closes nette/di#70]
  • PresenterComponent::redirect() fixed compatibility with func_get_args() in HHVM & PHP 7
  • FileResponse: According to RFC 5987 Content-Disposition filename should not contain non-US-ASCII
  • Validators::isUrl: underscored subdomain support added
  • Strings::toAscii() removes \x80-\xFF chars
  • Strings::toAscii() uses //IGNORE
  • Identity: fixed conversion of big ints [Closes nette/nette#1520]
  • PgSqlDriver: fixed formatLike() [Closes nette/database#46]
  • fixed quirky htmlspecialchars in PHP 5.6
Nette
v2.2.9

6. 5. 2015

Nette Framework 2.2.9 has just been released and this release marks the end of active support of the Nette 2.2 series. For one year only critical issues will be fixed. All users are encouraged to upgrade to the current stable version.

  • PresenterComponent::redirect() fixed compatibility with func_get_args() in HHVM & PHP 7
  • FileResponse: send file name according to RFC 5987
  • SQLiteStorage: fixed transaction execution
  • ContainerBuilder: fixed reseting of $currentService
  • netteForms.js: a lot of fixes
  • Form::fireEvents() calls onError even after last onSuccess handler
  • RadioList & CheckboxList: getControlPart() normalizes key type
  • Url: fixed isEqual() for same param values & regular sorting on numbers
  • Strings::toAscii() uses //IGNORE

For the details you can have a look at the diffs: application, caching, di, forms, http, utils.

Nette
v2.3.2

6. 5. 2015

We would like to announce the Nette Framework 2.3.2 containing these improvements:

  • PresenterComponent::redirect() fixed compatibility with func_get_args() in HHVM & PHP 7
  • ApplicationExtension: changed linkGenerator dependency from Nette\Http\Request to Nette\Http\IRequest
  • Presenter: "query" link syntax is un-deprecated
  • SQLiteStorage: fixed transaction execution
  • ResultSet: parameters are passed to statement via bindValue with correct type
  • Selection::fetchAssoc fix
  • Database: fixed infinite recursion when using StaticConventions and trying to access undefined column
  • ContainerBuilder: fixed reseting of $currentService
  • netteForms.js: a lot of fixes
  • FormMacros: <label n:name></label> is rendered as is, without caption
  • Form::fireEvents() calls onError even after last onSuccess handler
  • RadioList & CheckboxList: getControlPart() normalizes key type
  • Url: fixed isEqual() for same param values & regular sorting on numbers
  • Latte: HtmlNode::$isEmpty is TRUE for shortcuts like <textarea /> in HTML mode
  • Logger: added fromEmail option to set From header
  • Logger: suppress timezone warning
  • Bar: info bar show HHVM version if is running on HHVM

For the details you can have a look at the diffs: application, caching, database, di, forms, http, latte, tracy.

Tracy
v2.3.2

3. 5. 2015

  • Logger: added fromEmail option to set From header [Closes #109]
  • Bar: info bar show HHVM version if is running on HHVM
Tracy
v2.3.1

3. 5. 2015

  • dumper.js: works with polluted Array (i.e. with MooTools)
  • TracyExtension: added options logDirectory and logSeverity
  • Logger: exception is logged to exception.log before is stored to HTML file
  • Dumper::findLocation skips internal functions [Closes #104]
Tracy
v2.2.7

3. 5. 2015

  • Bar: support for SVG icons
  • Bar: fixed reloading of (empty) panel in external windows [Closes #57]
  • Dumper::findLocation skips internal functions [Closes #104]
  • added Tracy\Debugger::VERSION
Tester
v1.4.0

30. 3. 2015

  • generates code coverage report in Clover XML format (via tester --coverage coverage.xml)
  • generates test reports in JUnit XML format (via tester -o junit)
  • source code moved from Tester to src
  • improved Xdebug detection
  • Environment: acquires lock() only if not exist #201

For more information see documentation and changelog.

Tester
v1.3.2

30. 3. 2015

This release fixes some minor issues. For more information see documentation and changes.

Nette
v2.3.1

27. 3. 2015

We would like to announce the Nette Framework 2.3.1 containing these improvements:

  • FileResponse: encodes filename in Content-Disposition according to RFC 5987
  • ApplicationExtension: uses file in temp dir to invalidate container
  • CacheMacro: createCache has support for defining dependencies as a fallback
  • ActiveRow: added support to update primary columns via update()
  • MySQL: added support for objects DateInterval in column TIME
  • Revertes "SqlPreprocessor: fixed IN (?) with empty array" (possible BC break, see)
  • Table: fixed Selection::getReferencedTable() always refetching when primary is NULL
  • ContainerPanel: displays compilation time when container is compiled
  • FormMacros: empty <label n:name /> displays caption, as {label /} does
  • FormMacros: added support for <button>
  • netteForms.js: supports Common.JS and AMD loading
  • Neon::encode: removed trailing spaces
  • Latte: <script> with type text/json is escaped as javascript
  • Latte: improved macro {dump}
  • Tracy: fixed compatibility with MooTools and some plugins
  • TracyExtension: added option logSeverity
  • added tool ClassUpdater
  • and some fixes

For the details you can have a look at the diffs: application, bootstrap, caching, database, deprecated, di, forms, neon, utils, latte, tracy.

Nette
v2.2.8

10. 3. 2015

We would like to announce the Nette Framework 2.2.8 containing these improvements:

  • Routing: speed optimization
  • MicroPresenter: bug fixes
  • Configurator::setDebugMode() accepts only bool / string / array
  • NetteExtension: headers are not send and session is not started in CLI mode
  • Cache::load() fixed receiving dependencies as reference
  • Container::getComponent() uses better exception message when component has parent
  • Database: table and column names in joins can begin with number or underscore
  • PgSqlDriver: fixed formatLike() nette/database#46
  • Database\Connection & Context: undeprecated some methods, refactoring
  • DI\ContainerFactory: fixed thread-safety issues
  • fixed some limitations of netteForms.js
  • Session::configure() do not override setHandler
  • HttpRequest: drops non-UTF8 strings, but control characters only removes
  • Session: fix handling exceptions thrown from SessionHandlerInterface
  • Latte: fixed syntax=off
  • Latte: whitespace moved after closing tag for shortcuts like
  • PhpGenerator: new line after multiline phpDocs removed
  • Identity: fixed conversion of big ints nette/nette#1520
  • Tracy\Bar: fixed reloading of (empty) panel in external windows
  • Tracy\Bar: is ready for SVG icons
  • Strings::toAscii() converts degree sign to ^ and removes \x80-\xFF chars
  • Strings::webalize() converts non-breaking space … ™ ® etc in glibc mode
  • Image::place() fixed unexpected output with transparency image #56
  • Validators::isUrl: underscored subdomain support added

For the details you can have a look at the diffs: application, bootstrap, caching, component-model, database, di, forms, http, php-generator, security, utils, latte, tracy.

Nette
v2.3.0

25. 2. 2015

One - two - three, we are very proud to announce the Nette Framework two three!

Application

  • all presenters are created by Dependency Injection container
  • added LinkGenerator
  • Presenter: changed handling of invalid link, they triggers warnings on production and are configurable on development via 'silentLinks'
  • Routing: speed optimization & caching
  • added bridges for Nette DI
  • added Request::getParameter(), deprecated Request::isPost()

BC breaks:

  • routes and presenter names are case sensitive. Nette will warn you if you use the wrong case in presenter name. But due to performance limitation it is not checking Route mask - you should check them manually. Correct is <presenter=UpperCasedDefaultValue> and <presenter url-cased-regexp-mask>.
  • Route::addStyle() & Route::setStyleProperty() are deprecated and now will trigger E_USER_DEPRECATED
  • removed support for deprecated Nette\Templating, template extension .phtml and old link syntax

Bootstrap

  • in config file you can move all sections placed in nette to one level up. If you move up one of the sections container, mailer or debugger, rename it to di, mail and tracy.
  • added Configurator::addServices()
  • uses new DI\ContainerLoader
  • removed deprecated constants Configurator::DEVELOPMENT & PRODUCTION (BC break)
  • Configurator::setDebugMode() accepts only bool / string / array

Caching

  • FileStorage: removed usage of realpath()
  • added bridge for Nette DI
  • ancient and deprecated ArrayAccess syntax $val = $cache[$key] or $cache[$key] = $val triggers E_USER_DEPRECATED. Use please $cache->load($key) and $cache->save($key, $val)

Database

  • throws own exceptions:
    • DriverException, ConnectionException
    • ConstraintViolationException, ForeignKeyConstraintViolationException, NotNullConstraintViolationException and UniqueConstraintViolationException
  • added support for += and -= in UPDATE statement
  • added support for operators in WHERE & AND
  • implemented ?and ?or ?set ?values ?order ?name
  • added support for '.' in column names
  • forbidden syntax 'sql', 'sql', ..., i.e. after every SQL string must be at least one parameter
  • SqlLiteral is parsed using SqlPreprocessor
  • table and column names in joins can begin with number or underscore
  • classes *Reflection split into with *Conventions & Structure
  • added IRowContainer::fetchAssoc(), ISupplementalDriver::convertException() (BC break)
  • PgSqlDriver: fixed formatLike() nette/database#46
  • MySqlDriver by default uses utf8mb4 encoding for MySQL >= 5.5.3 instead of utf8 (possible problem)
  • Connection: undeprecated some methods
  • DatabaseExtension: added alias 'database.x.connection' for 'database.x'
  • to ensure that new SQL translator do the same job as older one, you can install special tool named CompatibilityChecker22

Deprecated

new package for deprecated stuff

DI

  • parameters auto-resolution for generated factories
  • service aliases
  • removed ServiceDefinition & Statement magic methods (makes it 3× faster)
  • added DecoratorExtension, DIExtension and InjectExtension
  • added CompilerExtension::validateConfig()
  • ExtensionsExtension: allows to pass params
  • dynamic services
  • chained syntax Class::method()::method()::method()
  • removed dependency on nette/reflection
  • ContainerFactory replaced with light ContainerLoader
  • ContainerBuilder: implement escaping of '@' at the beginning of string
  • Compiler: added addConfig() & loadConfig(), compile() returns ClassType[]

BC breaks:

  • Container & ContainerBuilder::findByType() returns all services, including non-autowired
  • class names are case sensitive
  • removed support for placing services inside extension section in configuration file
  • removed support for dynamically added extensions

Finder

  • Finder::filter() callback always receives as argument (at least) a FilesystemIterator
  • Finder is countable

Forms

  • fixed some limitations of netteForms.js
  • TextBase: input is not silently truncated to max-length
  • TextBase::addFilter() is processed during validation, added Rules::addFilter()
  • now you can add filters to conditions $input->addCondition(...)->addFilter(...)
  • to Container::onValidate callbacks are passed values via second parameter
  • added bridge for Nette DI
  • internal filtering methods like Nette\Forms\Controls\TextBase::filterFloat was removed
  • internal validation methods like Nette\Forms\Controls\TextBase::validateFloat was moved to Nette\Forms\Validator, as well as Rules::$defaultMessages
  • Buttons and Hidden fields are generated without HTML ID. Relying on autogenerated ID is very bad, if you want ID, set it via setHtmlId()
  • RadioList items are generated without ID too. You can enable it via $radioList->generateId = TRUE. But again: set you base ID via setHtmlId()
  • DefaultFormRenderer adds classes to inputs & label only during rendering process (BC break)

Http

  • RequestFactory: speed optimizations
  • Url: internally stores query parameters as array, improved canonicalize(), etc…
  • added briges for Nette DI
  • added Helpers::formatDate(), added IResponse::getHeader() (BC break)
  • Request::getUrl() is immutable
  • Response::date(), Request::isPost() & Request::getFile() with multiple keys are deprecated

Latte

  • template is wrapped in an class → much faster repeated rendering
  • faster loading from cache file
  • faster autoloader for non-Composer usage
  • {ifset block} & {elseifset block} without #
  • parser detects for unclosed / malformed macros (nette/nette#711)
  • added support for <script type="text/html"> (#24 & nette/nette#705)
  • added macro {php …} as replacement for {? …}
  • fills Html::$attrs with actual attribute values
  • "words" can contain concatenation dots (i.e. {include $dir . '/template.latte'} #26)
  • combination of n:class & class leads to exception

Mail

  • added bridge for Nette DI
  • variable $mail is not automatically passed to templates, you have to do it yourself (BC break) (but better than {var $mail->subject = "Your new order"} is this <title>Your new order</title>, isn't it?)
  • if you have linked images (with relative paths) in template, pass base file path to images as second parameter to setHtmlBody()
  • Message: removes <title> from body

Neon

  • chained syntax first(a, b)second(1, 2)

Php Generator

  • generating PHP files with multiple namespaces & classes
  • removed magic methods (makes it much faster)
  • splits long lines, uses single-quotes strings when possible
  • short phpDoc for properties

Reflection

  • added Helpers::getDeclaringClass()
  • added bridge for Nette DI

Robot Loader

  • added support for loading from Phar
  • removed usage of realpath()
  • is now case sensitive and will warn you if you use the wrong case in class name

Safe Stream

  • it is recommended to change protocol safe://... to namespaced nette.safe://...
  • protocol is registered automatically, no longer need to call SafeStream::register()

Security

  • added bridge for Nette DI

Tracy

  • Bluescreen & Debug Bar: 10× smaller HTML code, 10× faster, deeper depth of dumps
  • Debug Bar: redesigned, uses vector icons
  • Bluescreen: dumps contain location of class definition (can be opened in editor with ctrl key)
  • Bluescreen: added link "skip error" to suppress strictMode
  • Bluescreen: added Exception panel
  • added Tracy\ILogger and rewritten default Logger
  • Debugger::enable() implements checking of cookie (format cookie@ip.address)
  • customizable 500 error template via Debugger::$errorTemplate
  • Dumper: new options LOCATION_SOURCE, LOCATION_LINK, LOCATION_CLASS
  • Dumper: customizable object exportes
  • completely rewritten JavaScript, now requires IE 10+ (removed tracyQ.js)
  • added bridge for Nette DI

Utils

  • added Arrays::normalize(), Callback::invokeSafe(), Html::data(), Strings::firstLower()
  • Image::from() throws ImageException when is unable to decode file
  • Image::place() fixes support for alpha channel
  • Callback::closure() returns native closures since PHP 5.4
  • Strings::chr() throws Nette\InvalidArgumentException if code point is not in valid range
  • Validators::isUrl() accepts underscores in subdomains
Component Model
v2.2.1

24. 2. 2015

  • Container::getComponent() uses better exception message when component has parent #1
Mail
v2.3.0

31. 1. 2015

  • added bridge for Nette DI
  • variable $mail is not automatically passed to templates, you have to do it yourself (BC break) (but better than {var $mail->subject = "Your new order"} is this <title>Your new order</title>, isn't it?)
  • if you have linked images (with relative paths) in template, pass base file path to images as second parameter to setHtmlBody()
  • Message: removes <title> from body
Mail
v2.2.3

31. 1. 2015

  • fix

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

Bootstrap
v2.3.0

31. 1. 2015

  • in config file you can move all sections placed in nette to one level up. If you move up one of the sections container, mailer or debugger, rename it to di, mail and tracy.
  • added Configurator::addServices()
  • uses new DI\ContainerLoader
  • removed deprecated constants Configurator::DEVELOPMENT & PRODUCTION (BC break)
  • Configurator::setDebugMode() accepts only bool / string / array
Bootstrap
v2.2.4

31. 1. 2015

  • fixes

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

Bootstrap
v2.2.3

31. 1. 2015

  • Configurator::addConfig() accepts arrays [Closes #25]
  • TracyBridge initialization moved from NetteExtension to Configurator
  • TracyBridge: collapsePaths are initialized by Tracy itself
  • NetteExtension: validates security.users data

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

Di
v2.3.0

31. 1. 2015

  • parameters auto-resolution for generated factories
  • service aliases
  • removed ServiceDefinition & Statement magic methods (makes it 3× faster)
  • added DecoratorExtension, DIExtension and InjectExtension
  • added CompilerExtension::validateConfig()
  • ExtensionsExtension: allows to pass params
  • dynamic services
  • chained syntax Class::method()::method()::method()
  • removed dependency on nette/reflection
  • ContainerFactory replaced with light ContainerLoader
  • ContainerBuilder: implement escaping of '@' at the beginning of string
  • Compiler: added addConfig() & loadConfig(), compile() returns ClassType[]

BC breaks:

  • Container & ContainerBuilder::findByType() returns all services, including non-autowired
  • class names are case sensitive
  • removed support for placing services inside extension section in configuration file
  • removed support for dynamically added extensions
Application
v2.3.0

31. 1. 2015

  • all presenters are created by Dependency Injection container
  • added LinkGenerator
  • Presenter: changed handling of invalid link, they triggers warnings on production and are configurable on development via 'silentLinks'
  • Routing: speed optimization & caching
  • added bridges for Nette DI
  • added Request::getParameter(), deprecated Request::isPost()

BC breaks:

  • routes and presenter names are case sensitive. Nette will warn you if you use the wrong case in presenter name. But due to performance limitation it is not checking Route mask - you should check them manually. Correct is <presenter=UpperCasedDefaultValue> and <presenter url-cased-regexp-mask>.
  • Route::addStyle() & Route::setStyleProperty() are deprecated and now will trigger E_USER_DEPRECATED
  • removed support for deprecated Nette\Templating, template extension .phtml and old link syntax
Forms
v2.3.0

31. 1. 2015

  • fixed some limitations of netteForms.js
  • TextBase: input is not silently truncated to max-length
  • TextBase::addFilter() is processed during validation, added Rules::addFilter()
  • now you can add filters to conditions $input->addCondition(...)->addFilter(...)
  • to Container::onValidate callbacks are passed values via second parameter
  • added bridge for Nette DI
  • internal filtering methods like Nette\Forms\Controls\TextBase::filterFloat was removed
  • internal validation methods like Nette\Forms\Controls\TextBase::validateFloat was moved to Nette\Forms\Validator, as well as Rules::$defaultMessages
  • Buttons and Hidden fields are generated without HTML ID. Relying on autogenerated ID is very bad, if you want ID, set it via setHtmlId()
  • RadioList items are generated without ID too. You can enable it via $radioList->generateId = TRUE. But again: set you base ID via setHtmlId()
  • DefaultFormRenderer adds classes to inputs & label only during rendering process (BC break)
Database
v2.3.0

31. 1. 2015

  • throws own exceptions:
    • DriverException, ConnectionException
    • ConstraintViolationException, ForeignKeyConstraintViolationException, NotNullConstraintViolationException and UniqueConstraintViolationException
  • added support for += and -= in UPDATE statement
  • added support for operators in WHERE & AND
  • implemented ?and ?or ?set ?values ?order ?name
  • added support for '.' in column names
  • forbidden syntax 'sql', 'sql', ..., i.e. after every SQL string must be at least one parameter
  • SqlLiteral is parsed using SqlPreprocessor
  • table and column names in joins can begin with number or underscore
  • classes *Reflection split into with *Conventions & Structure
  • added IRowContainer::fetchAssoc(), ISupplementalDriver::convertException() (BC break)
  • PgSqlDriver: fixed formatLike() #46
  • MySqlDriver by default uses utf8mb4 encoding for MySQL >= 5.5.3 instead of utf8 (possible problem)
  • Connection: undeprecated some methods
  • DatabaseExtension: added alias 'database.x.connection' for 'database.x'
  • to ensure that new SQL translator do the same job as older one, you can install special tool named CompatibilityChecker22
Caching
v2.3.0

31. 1. 2015

  • FileStorage: removed usage of realpath()
  • added bridge for Nette DI
  • ancient and deprecated ArrayAccess syntax $val = $cache[$key] or $cache[$key] = $val triggers E_USER_DEPRECATED. Use please $cache->load($key) and $cache->save($key, $val)
Database
v2.2.3

31. 1. 2015

  • Helpers::dumpSql() quotes strings using connection
  • SqlPreprocessor: fixed non-associative array detection

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

Finder
v2.3.0

31. 1. 2015

  • Finder::filter() callback always receives as argument (at least) a FilesystemIterator
  • Finder is countable
Finder
v2.2.1

31. 1. 2015

  • fixes

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

Http
v2.3.0

31. 1. 2015

  • RequestFactory: speed optimizations
  • Url: internally stores query parameters as array, improved canonicalize(), etc…
  • added briges for Nette DI
  • added Helpers::formatDate(), added IResponse::getHeader() (BC break)
  • Request::getUrl() is immutable
  • Response::date(), Request::isPost() & Request::getFile() with multiple keys are deprecated
Latte
v2.3.0

31. 1. 2015

  • template is wrapped in an class → much faster repeated rendering
  • faster loading from cache file
  • faster autoloader for non-Composer usage
  • {ifset block} & {elseifset block} without #
  • parser detects for unclosed / malformed macros (nette/nette#711)
  • added support for <script type="text/html"> (#24 & nette/nette#705)
  • added macro {php …} as replacement for {? …}
  • fills Html::$attrs with actual attribute values
  • "words" can contain concatenation dots (i.e. {include $dir . '/template.latte'} #26)
  • combination of n:class & class leads to exception
Neon
v2.3.0

31. 1. 2015

  • chained syntax first(a, b)second(1, 2)
Neon
v2.2.4

31. 1. 2015

  • Encoder: encodes strings with JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
  • NeonDecoder: implemented support for unicode surrogate pairs

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

Neon
v2.2.3

31. 1. 2015

  • fixed array-after-key parsing

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

Php Generator
v2.3.0

31. 1. 2015

  • generating PHP files with multiple namespaces & classes
  • removed magic methods (makes it much faster)
  • splits long lines, uses single-quotes strings when possible
  • short phpDoc for properties
Reflection
v2.3.0

31. 1. 2015

  • added Helpers::getDeclaringClass()
  • added bridge for Nette DI
Reflection
v2.2.1

31. 1. 2015

  • AnnotationsParser::expandClassName() resolves self to original class name
Robot Loader
v2.3.0

31. 1. 2015

  • added support for loading from Phar
  • removed usage of realpath()
  • is now case sensitive and will warn you if you use the wrong case in class name
Robot Loader
v2.2.1

31. 1. 2015

  • Ignores ClassName::class syntax #1

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

Safe Stream
v2.3.0

31. 1. 2015

  • protocol safe:// changed to nette.safe://
  • protocol is registered automatically, no longer need to call SafeStream::register()
Security
v2.3.0

31. 1. 2015

  • added bridge for Nette DI
Utils
v2.3.0

31. 1. 2015

  • added Arrays::normalize(), Callback::invokeSafe(), Html::data(), Strings::firstLower()
  • Image::from() throws ImageException when is unable to decode file
  • Image::place() fixes support for alpha channel
  • Callback::closure() returns native closures since PHP 5.4
  • Strings::chr() throws Nette\InvalidArgumentException if code point is not in valid range
  • Validators::isUrl() accepts underscores in subdomains
Tracy
v2.3.0

31. 1. 2015

  • Bluescreen & Debug Bar: 10× smaller HTML code, 10× faster, deeper depth of dumps
  • Debug Bar: redesigned, uses vector icons
  • Bluescreen: dumps contain location of class definition (can be opened in editor with ctrl key)
  • Bluescreen: added link "skip error" to suppress strictMode
  • Bluescreen: added Exception panel
  • added Tracy\ILogger and rewritten default Logger
  • Debugger::enable() implements checking of cookie (format cookie@ip.address)
  • customizable 500 error template via Debugger::$errorTemplate
  • Dumper: new options LOCATION_SOURCE, LOCATION_LINK, LOCATION_CLASS
  • Dumper: customizable object exportes
  • completely rewritten JavaScript, now requires IE 10+ (removed tracyQ.js)
  • added bridge for Nette DI

b9ewtkxcuae35me png large

Latte
v2.2.4

28. 1. 2015

  • implemented {elseifset #block}
  • fixed some bugs

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

Tester
v1.3.1

27. 1. 2015

This release fixes some issues:

  • FileMock: removed uniqid(), because is not unique #177
  • HHVM: register_shutdown_handler() fixed in 3.4.0 #162
  • CodeCoverage/template.phtml: suppressed error when datetime zone is not set #195
  • Runner: stop-on-fail can be invoked by initial phase #185
  • Environment::lock() allows multiple locks #201

For more information see documentation and changes.

Application
v2.2.4

30. 12. 2014

  • RoutingPanel: improved dumping of objects [Closes #42]
  • Route: percent-encoded bytes are decoded before URL is matched

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

Application
v2.2.3

30. 12. 2014

  • Form: calling setAction() bypasses creation of 'do' element [Closes #33]
  • Template: added __call() for BC [Closes #38]
  • Route: %domain% and %tld% works with IP

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

Caching
v2.2.3

30. 12. 2014

  • MemcachedStorage: the key must not include control characters or whitespace [Closes #13]
  • FileJournal: fixed 'Link is not in node' exception [Closes #12]

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

Caching
v2.2.2

30. 12. 2014

  • SQLiteStorage: fixed clean(Cache::ALL)

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

Di
v2.2.3

30. 12. 2014

  • ExtensionsExtension: Allow passing parameters to extension constructor
  • ContainerFactory: rewritten caching mechanism to not use fopen [Closes #27]
  • Fixed usage of inject annotations in traits

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

Di
v2.2.2

30. 12. 2014

  • ContainerFactory::$configFiles can contain arrays with configuration [Closes #26]

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

Forms
v2.2.4

30. 12. 2014

  • BaseControl: allow passing objects to translator in control
  • netteForms.js: getValue returns bool for checkbox
  • bower: excluded examples folder

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

Forms
v2.2.3

30. 12. 2014

  • CsrfProtection: token is expired after regenerateId() (i.e. after logout) [Closes #36]
  • CSRF: better error message
  • CsrfProtection: ignores setValue(), is not erased by Form::setValues() [Closes #39][Closes #40]
  • RadioList: added item label prototype [fixes #31]
  • Container: added addMultiUpload()
  • TextBase: added setMaxLength()
  • TextInput: removed empty value=""
  • TextBase: fixed setEmptyValue() and space at the end of the string [Closes #35]
  • Latte: Fixed $formContainer recover after end of formContainer macro [Closes #43]
  • netteforms.js: Change order of showing error message and focusing element. In Firefox element lost focus when alert is invoked.

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

Http
v2.2.5

30. 12. 2014

  • RequestFactory: optimized UTF-8 validation performance
  • Url::unescape() optimized for performance
  • Url::unescape() unifies %aa to %AA

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

Http
v2.2.4

30. 12. 2014

  • Response::redirect() link is printed only for https? protocols [Closes #24](security fix)
  • Response: workaroud for PHP bugs #61106 and #66375 [closes #25]

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

Http
v2.2.2

30. 12. 2014

  • Url::isEqual: improved, fixed comparing of indexed arrays
  • Response: added missing HTTP status codes as constants
  • Request: header names are lowercased

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

Security
v2.2.2

30. 12. 2014

  • UserPanel: is rendered only when headers are not sent [Closes #7](fixed bug introduced in v2.2.1)

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

Security
v2.2.1

30. 12. 2014

  • Passwords: removed useless PASSWORD_MAX_LENGTH [Closes #1]
  • Passwords: Fix for validation of cost 31 [Closes #2][Closes #4]

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

Utils
v2.2.4

30. 12. 2014

  • Json: workaroud for PHP fatal error caused by \u0000 at the beginning of key
  • speed optimization for Object, Strings::length(), Strings::substring()
  • Strings::toAscii(): unsupported characters are removed instead of being replaced with '?'
  • Html: floats in attributes are printed in natural notation [Closes nette/forms#50]

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

Utils
v2.2.3

30. 12. 2014

  • DateTime: createFromFormat returns FALSE on failure [Closes #33][Closes #34]

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

Nette
v2.2.7

30. 12. 2014

We would like to announce the Nette Framework 2.2.7 containing these improvements:

  • Json: workaroud for PHP fatal error caused by \u0000 at the beginning of key
  • RequestFactory: optimized UTF-8 validation performance
  • Url::unescape() optimized for performance
  • speed optimization for Object, Strings::length(), Strings::substring()
  • Tracy: 500 error page is better displayed as part of page
  • RoutingPanel: improved dumping of objects
  • MemcachedStorage: the key must not include control characters or whitespace
  • ExtensionsExtension: Allow passing parameters to extension constructor
  • ContainerFactory: rewritten caching mechanism to not use fopen
  • BaseControl: allow passing objects to translator in control
  • netteForms.js: getValue returns bool for checkbox
  • UserPanel: is rendered only when headers are not sent (fixes bug introduced in v2.2.6)
  • Strings::toAscii(): unsupported characters are removed instead of being replaced with '?'
  • Html: floats in attributes are printed in natural notation
  • DI: annotations @inject can be defined in traits
  • Neon: support for unicode surrogate pairs, improved encoding of strings

For the details you can have a look at the diffs: application, caching, di, finder, forms, http, neon, security, utils, tracy.

Nette
v2.1.9

30. 12. 2014

Nette Framework 2.1.9 has just been released and this release marks the end of active support of the Nette 2.1 series. For one year only critical issues will be fixed. All users are encouraged to upgrade to the current stable version Nette 2.2.

  • Json: workaroud for PHP fatal error caused by \u0000 at the beginning of key
  • RequestFactory: optimized UTF-8 validation performance
  • Url::unescape() optimized for performance
  • speed optimization for Object, Strings::length(), Strings::substring()
  • RoutingPanel: improved dumping of objects
  • MemcachedStorage: the key must not include control characters or whitespace
  • BaseControl: allow passing objects to translator in control
  • netteForms.js: getValue returns bool for checkbox
  • UserPanel: is rendered only when headers are not sent (fixes bug introduced in v2.1.8)
  • Strings::toAscii(): unsupported characters are removed instead of being replaced with '?'
  • Html: floats in attributes are printed in natural notation
  • some other fixes

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

Tracy
v2.2.6

30. 12. 2014

  • 500 error page is better displayed as part of page
  • some fixes

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

Tracy
v2.2.5

30. 12. 2014

  • OutputDebugger: stack is printed in title, output is grouped by stack trace
  • added OutputDebugger example
  • some fixes

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

Tracy
v2.2.4

30. 12. 2014

  • BlueScreen: collapsePaths is set to /vendor dir
  • a lot of fixes

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

Nette
v2.0.18

22. 12. 2014

Nette Framework 2.0.18 has just been released and this release marks the end of life of the Nette 2.0 series and end of support for PHP 5.2. All users are encouraged to upgrade to the current stable version Nette 2.2.

  • Json: workaround for PHP fatal error
  • Response::redirect() prints only http/s links
  • MemcachedStorage: keys must not include control characters

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

Nette
v2.2.6

15. 11. 2014

We would like to announce the Nette Framework 2.2.6 containing these improvements:

  • Http\Response: workaround for PHP bugs #61106 and #66375
  • Http\Response::redirect() link is printed only for https? protocol
  • Tracy: fixed positioning of window
  • Tracy\OutputDebugger: stack is printed in title

For the details you can have a look at the diffs: bootstrap, http, reflection, tracy.

Nette
v2.1.8

15. 11. 2014

We would like to announce the Nette Framework 2.1.8 containing these improvements:

  • Http\Response: workaroud for PHP bugs #61106 and #66375
  • Http\Response::redirect() link is printed only for https? protocol
  • Debugger: fixed positioning of window

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

Nette
v2.0.17

29. 10. 2014

Nette Framework 2.0.17 has just been released and contains these security fixes:

  • CsrfProtection token is expired after regenerateId() (i.e. after logout)
  • CSRF error message changed to Your session has expired. Please return to the home page and try again.

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

Please note that the 2.0 series will enter an end of life cycle and receive only (critical) fixes for year 2014. This is also the last series for PHP 5.2. All users are encouraged to upgrade to Nette Framework 2.2.

Nette
v2.1.6

29. 10. 2014

We would like to announce the Nette Framework 2.1.6 containing these improvements:

  • CsrfProtection: token is expired after regenerateId() (i.e. after logout) security fix!
  • CsrfProtection: ignores setValue(), is not erased by Form::setValues
  • TextInput: fixed setEmptyValue() with space at the end of the string
  • fixes in netteForms.js
  • Route: %domain% and %tld% works with IP
  • SqlPreprocessor: fixed non-associative array detection
  • Url::isEqual: fixed comparing of indexed arrays
  • UserPanel: is rendered only when headers are not sent
  • fixes in phpDoc

Due to PHP bugs #61106 and #66375 we recommend to use version 2.1.7.

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

Nette
v2.2.4

27. 10. 2014

We would like to announce the Nette Framework 2.2.4 containing these improvements:

Forms:

  • CsrfProtection: token is expired after regenerateId() (i.e. after logout) security fix!
  • CsrfProtection: ignores setValue(), is not erased by Form::setValues
  • Form: calling setAction() bypasses creation of 'do' element
  • DefaultFormRenderer: support for setOption('id') for groups
  • RadioList: added item label prototype
  • Container: added addMultiUpload()
  • TextBase: added setMaxLength()
  • TextInput: removed empty value=""
  • TextBase::setEmptyValue() can contain space at the end of the value
  • fixes in netteForms.js

Tracy:

  • fixed double calling Debugger::enable(), Debugger: $logSeverity in development mode, CSS
  • BlueScreen: collapsePaths is set to /vendor dir
  • create-phar: minification for JS & CSS
  • Debugger: removed error message in non-HTML production mode
  • TracyBridge initialization moved from NetteExtension to Configurator

others:

  • supported $configurator->addConfig(array(...configuration...))
  • Template: added __call() for BC
  • Route: %domain% and %tld% works with IP
  • SqlPreprocessor: fixed non-associative array detection
  • Http\Response: Added missing HTTP status codes as constants
  • Url::isEqual: fixed comparing of indexed arrays
  • UserPanel: is rendered only when headers are not sent
  • DateTime: createFromFormat returns FALSE on failure
  • Latte: implemented {elseifset #block}
  • Latte: allows load templates from phar file
  • Database: strings in Tracy Bar are correctly escaped
  • Http: fixes in phpDoc

Due to PHP bugs #61106 and #66375 we recommend to use version 2.2.5.

For the details you can have a look at the diffs: application, bootstrap, caching, database, di, forms, http, mail, neon, security, utils, latte, tracy.

Tester
v1.3.0

27. 9. 2014

  • officially supports HHVM v3.3.0 (thanks to @Majkl578 & @milo)
  • added option -o (output format) which can enumerate from:
    • console: the same as default, but logo is not printed
    • tap: replacement for the deprecated --tap option (Test Anything Protocol)
    • none: nothing is printed, only bad usage errors when occures
  • removed dependency on iconv and json extensions
  • refactoring of Environment::setup() and file tester.php
  • FileMock works with is_readable & is_writable

For more information see documentation and changelog.

Nette
v2.0.16

28. 8. 2014

Nette Framework 2.0.16 has just been released and contains these security fixes:

  • Configurator::setDebugMode() without argument uses autodetection
  • Mail: fixed headers encoding
  • Mail: setHtmlBody() decodes %XX in URL
  • PhpGenerator: fixed dumping of non-public properties
  • DI: better exception messages
  • and some other fixes

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

Please note that the 2.0 series will enter an end of life cycle and receive only (critical) fixes for year 2014. This is also the last series for PHP 5.2. All users are encouraged to upgrade to Nette Framework 2.2.

Nette
v2.1.5

28. 8. 2014

We would like to announce the Nette Framework 2.1.5 containing these improvements:

  • new way how to detect errors in native PHP function (used in Session, Mail, Strings, …)
  • Configurator::setDebugMode() without argument uses autodetection
  • DI: fixed inheritance
  • DI: better exception messages
  • Forms: fixed erasing of manually added errors via addError
  • Forms: fixed getHttpData() for multiple file uploads
  • Latte: macro {includeblock} gently trims output
  • Http\Response: added $warnOnBuffer
  • Mail: fixed headers encoding nette/mail#4
  • Mail: setHtmlBody() decodes %XX in URL
  • PhpGenerator: ClassType::from processes only own properties
  • PhpGenerator: fixed dumping of non-public properties

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

Nette
v2.2.3

28. 8. 2014

We would like to announce the Nette Framework 2.2.3 containing these improvements:

Fixes:

  • new way how to detect errors in native PHP function (used in Session, Mail, Strings, …)
  • DI: fixed inheritance
  • Database & DI: fixes autowiring for multiple connections
  • Database: fixed & enhanced support for multiple scheme reflection
  • Forms: fixed erasing of manually added errors via addError
  • Forms: fixed getHttpData() for multiple file uploads
  • Http\Response: added $warnOnBuffer
  • Latte: filter |date respects active timezone
  • Latte: macro {includeblock} gently trims output
  • Mail: fixed headers encoding nette/mail#4
  • Mail: setHtmlBody() decodes %XX in URL
  • PhpGenerator: ClassType::from processes only own properties
  • PhpGenerator: fixed dumping of non-public properties
  • Template::registerHelperLoader: removed E_USER_DEPRECATED
  • TemplateFactory: added missing filters modifyDate, length & null
  • Neon: fixed parsing of:
key1:
- subitem
- subitem

News:

  • added support for $configurator->setDebugMode('secret@23.75.345.200'), where secret must match with cookie nette-debug
  • added Latte\Engine::invokeFilter(), as a replacement for $template->$filter().
  • DI: better exception messages
  • NDBT: added support for NULL with operator NOT
  • Forms & Latte: prettier output formating
  • Tracy: added Debugger::$logSeverity for logging bluescreen for errors/warnings/notices in production mode
  • added Validators::isUri()

For the details you can have a look at the diffs: application, bootstrap, database, di, forms, http, mail, neon, php-generator, utils, latte, tracy.

Forms
v2.2.2

28. 8. 2014

  • fixed erasing of manually added errors via addError
  • fixed getHttpData() for multiple file uploads
  • Latte: prettier output formating

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

Application
v2.2.2

27. 8. 2014

  • Template::registerHelperLoader: removed E_USER_DEPRECATED
  • TemplateFactory: added missing filters modifyDate, length & null
  • Application disables warnOnBuffer before error 500 is sent nette/nette#1366

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

Bootstrap
v2.2.2

27. 8. 2014

  • added support for $configurator->setDebugMode('secret@23.75.345.200'), where secret must match with cookie nette-debug

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

Database
v2.2.2

27. 8. 2014

  • DI: fixed autowiring for multiple connections
  • fixed & enhanced support for multiple scheme reflection
  • NDBT: added support for NULL with operator NOT

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

Di
v2.2.1

27. 8. 2014

  • fixed service inheritance
  • better exception messages
  • added ContainerBuilder::addExcludedClasses() for excluding classes from autowiring nette/nette#1424
  • added ServiceDefinition::getTag()
  • Compiler: builder is created in constructor

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

Http
v2.2.1

27. 8. 2014

  • Response: added $warnOnBuffer
  • fixes

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

Latte
v2.2.3

27. 8. 2014

  • filter |date respects active timezone
  • macro {includeblock} gently trims output
  • added Latte\Engine::invokeFilter(), as a replacement for former $template->$filter().
  • prettier output formating for some macros

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

Mail
v2.2.2

27. 8. 2014

  • changed & fixed encoding of emails in headers
  • base64 is not used for long headers & where can be quoted string #4
  • setHtmlBody() decodes %XX in URL

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

Neon
v2.2.2

27. 8. 2014

Fixed parsing

key1:
- subitem
- subitem

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

Php Generator
v2.2.1

27. 8. 2014

  • fixed dumping of non-public properties
  • ClassType::from processes only own properties

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

Tracy
v2.2.3

27. 8. 2014

  • added Debugger::$logSeverity for logging bluescreen for errors/warnings/notices in production mode

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

Utils
v2.2.2

27. 8. 2014

  • Strings, Arrays, Json: rewritten way how errors in PCRE functions are detected
  • added Validators::isUri()

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

Neon
v2.2.1

24. 6. 2014

  • allows combinations of tabs and spaces
  • accepts short bullet syntax:
- key: val
  key2: val2

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

Nette
v2.2.2

24. 6. 2014

We would like to announce the Nette Framework 2.2.2 containing these improvements:

  • Route: allows to use parameters with long names
  • FileResponse: send response either as attachment or inline
  • UI\Presenter: all services except httpRequest & httpResponse are optional
  • Tracy: better error messages when is Tracy unable to log errors
  • Latte: added support for empty {var $foo}
  • netteForms: toggle related event handler is added only once
  • Configurator::setDebugMode(): removed default value
  • a lot of bugfixes

For the details you can have a look at the diffs: application, bootstrap, caching, database, forms, mail, latte, tracy.

Application
v2.2.1

24. 6. 2014

  • Route: allows to use parameters with long names
  • FileResponse: send response either as attachment or inline
  • UI\Presenter: all services except httpRequest & httpResponse are optional
  • fixed bugs

For the details about the changes you can have a look at the Github diff.

Bootstrap
v2.2.1

24. 6. 2014

  • Configurator::setDebugMode(): removed default value
  • fixed bugs

For the details about the changes you can have a look at the Github diff.

Caching
v2.2.1

24. 6. 2014

Nothing new.

Database
v2.2.1

24. 6. 2014

  • ResultSet: fix, empty keys are not converted to properties

For the details about the changes you can have a look at the Github diff.

Forms
v2.2.1

24. 6. 2014

  • netteForms: toggle related event handler is added only once
  • some fixes

For the details about the changes you can have a look at the Github diff.

Mail
v2.2.1

24. 6. 2014

  • SendMailMailer: fixed catching of error message

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

Latte
v2.2.2

24. 6. 2014

Note: usage of some internal variables like $_l has been changed.

For the details about the changes you can have a look at the Github diff.

Latte
v2.2.1

24. 6. 2014

Added protection against innerHTML mXSS vulnerability nette/nette#1496

For the details about the changes you can have a look at the Github diff.

Tracy
v2.2.2

24. 6. 2014

  • better error messages when is Tracy unable to log errors
  • a lot of fixes

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

Tester
v1.2.0

11. 6. 2014

  • added option --stop-on-fail that stops execution upon first error
  • added FileMock for mocking files #137
  • added Assert::count()
  • DomQuery supports HTML 5
  • DataProvider can use default values of target method #123
  • allowed combination of annotations like @testcase, @multiple or @dataprovider
  • fixed some bugs in Coverage reporter

For more information see documentation and changelog.

Nette
v2.2.1

27. 5. 2014

We would like to announce the Nette Framework 2.2.1 containing these improvements:

  • Latte & Nette\Utils\Html: added protection against innerHTML mXSS vulnerability
  • Tracy: Dumper prints attribute data-tracy-href only when option 'location' is enabled
  • Neon: accepts short bullet syntax:
- key: val
  key2: val2

For the details you can have a look at the diffs: neon, robot-loader, utils, latte, tracy.

Nette
v2.1.4

26. 5. 2014

We would like to announce the Nette Framework 2.1.4 containing these fixes:

  • Latte & Nette\Utils\Html: added protection against innerHTML mXSS vulnerability
  • Latte: fixed parsing {macro|modifier /}
  • Latte: fixed including parent block multiple times
  • Latte, DI: improved error messages
  • Tracy: Dumper prints attribute data-tracy-href only when option 'location' is enabled
  • RadioList: attrs of radiolist label aren't appended to labels of radio
  • Database: ResultSet: empty keys are not converted to properties
  • Strings::toAscii(): support for czech and french quotation marks
  • RobotLoader: works with PHP 5.6 syntax ClassName::class

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

Utils
v2.2.1

25. 5. 2014

Added protection against innerHTML mXSS vulnerability.

IE8 for code <div attr="´´foo=bar"> produces invalid innerHTML <div attr=´´foo=bar>. Adding a space at the end of the attribute forces IE to put quotes around the attribute.

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

Nette
v2.0.15

24. 5. 2014

We would like to announce the Nette Framework 2.0.15 containing these fixes and improvements:

  • Strings::random() uses the best available entrophy generator
  • Latte & Nette\Utils\Html: added protection against innerHTML mXSS vulnerability ("see":http://www.slideshare.net/x00mario/the-innerhtml-apocalypse)
  • Latte: fixed including parent block multiple times
  • Latte: improved HTML comments escaping
  • Latte: improved |safeurl helper
  • Debugger: fixed HTTPS detection on nginx
  • Database: fixes in PostgreSQL and SQlite drivers
  • Database: ResultSet: empty keys are not converted to properties
  • RobotLoader: works with PHP 5.6 syntax ClassName::class
  • added support DateTimeImmutable

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

Please note that the 2.0 series will enter an end of life cycle and receive only (critical) fixes for year 2014. This is also the last series for PHP 5.2. All users are encouraged to upgrade to Nette Framework 2.2.

Tracy
v0.7

23. 5. 2014

Tracy
v0.9.1

23. 5. 2014

  • added OutputDebugger
  • added @tracySkipLocation annotation
  • some fixes

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

Tracy
v2.2.1

23. 5. 2014

  • Dumper exposes file paths only when option 'location' is enabled
  • Bluesceen: fixed dumping variables in source code

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

Application
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Safe Stream
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Tracy
v2.2.0

12. 5. 2014

  • added Tracy logo (replaces Nette logo)
  • exceptions are logged to file 'exception.log' instead of 'error.log'
  • CSS: replaced .tracy-toggle-collapsed with .tracy-toggle.tracy-collaped
  • a lot of fixes

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

Forms
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Utils
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Tokenizer
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Security
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Robot Loader
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Reflection
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Php Generator
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Neon
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md and sandbox.

Mail
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Latte
v2.2.0

12. 5. 2014

After 6 years of development Latte has become standalone templating engine with a lot of cool features.

  • context sensitive escaping
  • easy PHP-like syntax
  • n:attributes

For more information see readme.md.

Http
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Finder
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Di
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Database
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Component Model
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Caching
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Bootstrap
v2.2.0

12. 5. 2014

The first standalone release. For more information see readme.md.

Nette
v2.1.3

12. 5. 2014

We would like to announce the Nette Framework 2.1.3 containing these fixes:

  • Strings::fixEncoding() uses iconv in PHP 5.3, because htmlspecialchars can be very slow
  • added option to disable autoloading of annotation classes via AnnotationsParser::$useAnnotationClasses
  • Reverted SendmailMailer use CRLF in subject, see nette/nette#1437 (comment)
  • fixed detection of primary keys in SQlite

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

Nette
v2.2.0

11. 5. 2014

We would like to announce the Nette Framework 2.2, the biggest revolution in its history.

Nette has been split into small projects Application, Caching, ComponentModel, Nette Database, DI, Finder, Forms, Http, Latte, Mail, Neon, PhpGenerator, Reflection, RobotLoader, SafeStream, Security, Tokenizer, Tracy and Nette Utils.

It also brings complete new Latte API for standalone usage:

$latte = new Latte\Engine;
$latte->onCompile[] = function($latte) {
    $latte->addMacro(...);
};
$latte->addFilter('money', ...);
$latte->render('template.latte', $parameters);

Also Nette\Diagnostics was renamed to nice and short Tracy.

You can, as usual, download complete package or install it via Composer.

Tester
v1.1.0

3. 4. 2014

  • Tester: added options --coverage and --coverage-src for generating code coverage reports (tool coverage-report.php was removed)
  • Tester uses 33 threads by default (instead of single thread)
  • Tester: option -log changed to -l or --log to be consistent with other options
  • shows warning when no assertions are executed [Closes #112]
  • Assert::isEqual can compare recursive objects [Closes #93]
  • added Assert::nan()
  • added PHAR (PHP Archive) distribution
  • added Tester\Environment::loadData() for loading data via annotation @dataProvider

For more information see documentation and changelog.

Nette
v2.1.2

20. 3. 2014

We would like to announce the Nette Framework 2.1.2 containing these fixes:

  • Image: added support for image resource cloning #1329
  • Forms: added Form::DATA_KEYS for preserving keys in getHttpData() #1433
  • Forms & netteForms.js: fixed bug in negative toggling via toggle(..., FALSE)
  • PhpGenerator: Added support for variadics (PHP 5.6 feature) #1414
  • Mail: SendmailMailer use CRLF in subject. #1437
  • Random: mcrypt_create_iv() crashes with „Fatal error: mcrypt_create_iv(): Could not gather sufficient random data“ in PHP 5.3.3 on Windows
  • Latte Macros: n:ifcontent checks for whitespaces (closes #1387)
  • Latte: improved HTML comments escaping
  • Debugger: fixed HTTPS detection on nginx
  • Debugger: error.phtml erases HTML output
  • Strings::fixEncoding() removed dependency on mbstring for UTF-8 encoding

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

Nette
v2.1.1

11. 2. 2014

We would like to announce the release of Nette Framework 2.1.1 containing these fixes:

  • disables safeUrl when |dataStream, {link} or {plink} are used
  • adds ability to render checkboxes via n:name without using colon in name
  • enables coexistence of annotation @method with extension methods #1344
  • fixes SelectBox::setItems without keys
  • and doubled DB query after toArray #1332
  • multiple service inheritance
  • snippetArea with included template
  • HTML5 validation of required CheckboxList
  • TextInput: min/max input attributes for multiple range rules
  • fixes combination of n:name with other n:attributes

Adds:

  • CSRF token is protected against BREACH attack
  • Application::$onPresenter event
  • helper escapeUrl as alias for url
  • Strings::random uses openssl_random_pseudo_bytes or mcrypt_create_iv
  • supports short <select n:name=... />

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

Tester
v1.0.0

8. 2. 2014

Four years ago was added to the Nette Framework new simple unit test framework ;-) Now Nette Tester has become stable testing tool with integrated support in NetBeans 8.0 and lot of features:

  • very easy and understandable API
  • each test is a standalone PHP script
  • fast parallel testing
  • colorized and readable output, including TAP format
  • code coverage analysis
  • watching folders for changes and automatically re-run tests
  • HTML output testing

For more information see readme.md.

Nette
v2.0.14

1. 1. 2014

Nette Framework 2.0.14 has just been released and is now available for download Feel free to update!

Please note that the 2.0 series will enter an end of life cycle and receive only (critical) fixes for year 2014. This is also the last series for PHP 5.2. All users are encouraged to upgrade to Nette Framework 2.1. For migration to namespaced version you can use script migrate-53.php.

It contains a lot of fixes and improvements:

  • UI\Presenter: fixed canonicalize with components #545 and making relative URLs #1201
  • UI\Presenter: sends HTTP header Vary: X-Requested-With #1133
  • Database: SqlPreprocessor ignores placeholders in comments #1293
  • Database: added limit for logged queries into Debugger Bar commit
  • Forms: removed usage of Environment (when addProtection() is not used)
  • netteForms.js: toggles are attached on changed event #1087
  • Latte: added modifier |safeUrl, white list for http & ftp URL: <a href="{$url|safeUrl}">
  • Latte: added modifier {foreach |noiterator}
  • Latte: is faster and uses less memory thanks to removing the function extract()
  • Latte: improved auto-quoting in some expressions
  • Latte: fixed processing and escaping of XML
  • Nette\DateTime: works with UNIX timestamps bigger than 32bits
  • Debugger: Logger: HTTP_HOST is sanitized
  • and one more thing: keyword final from all methods and classes has been removed

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

Nette
v2.1.0

31. 12. 2013

After two years of development we are very proud to announce the availability of Nette Framework 2.1.0!

Application & Presenter

  • PresenterFactory: configurable mapping Presenter name -> Class name
  • Route: new pseudo-variables %basePath%, %tld% and %domain%
  • Presenter: new method sendJson()

Caching

  • added SQLite storage (Nette/Caching/Storages/SQLiteStorage)

Database (NDB)

  • complete refactoring, a ton of bug fixes
  • lazy connection
  • much better (dibi-like) SQL preprocessor
  • Selection, ActiveRow: insert() & update() methods return row instances with refetched data
  • Selection: added placeholder support select(), group(), having(), order() methods
  • SqlLiteral: added placeholder support
  • Selection: added WHERE conditions consider NOT for IN operator
  • new driver for Sqlsrv
  • Sqlite supports multi-inserts

Debugger

  • Bar: you can see bar after redirect
  • Dumper: colored and clickable dumps in HTML or terminal
  • Debugger: full stack trace on fatal errors (requires Xdebug)

Dependency Injection (DI)

  • auto-generated factories and accessors via interface
  • adding compiler extensions via config file
  • configurable presenters via config file
  • annotation @Inject
  • bullet syntax for anonymous services

Forms

  • setOmitted: excludes value from $form->getValues() result
  • implemented full validation scopes
  • Form::getOwnErrors() returns only errors attached to form
  • Radiolist::getLabel(..., $key) returns label for single item
  • added ChoiceControl, MultiChoiceControl and CheckboxList
  • SelectBox and CheckboxList: allowes to disable single items
  • UploadControl allowes multiple files upload
  • validators Form::INTEGER, NUMERIC and FLOAT converts values to integer or float
  • validator Form::URL prepends http:// to value
  • Form::getHttpData($htmlName) returns data for single field
  • supports Twitter Bootstrap 2 & 3 (see examples)
  • removed dependency on Environment
  • improved toggles
  • data-nette-rules attribute is JSON

Latte

  • supports <tag attr=$val> without quotes
  • new macro n:name for <form> <input> <select> <textarea>
  • partially rendered radiolists using {input name:$key} and {label name:$key}
  • new modifier |safeurl which allowes only http(s), ftp and mailto protocols
  • safeurl is automatically used for href, src, action and formaction attributes (can be bypassed by |nosafeurl modifier)
  • new modifier |noescape which is preferred over exclamation mark
  • {foreach ...|nointerator} bypasses creating variable $iterator
  • new macro n:ifcontent
  • {include block} can be written without hash

Http

  • added new SessionPanel
  • RequestFactory: new method setProxy()

Utils

  • new utility class FileSystem
  • new utility class Callback
  • Arrays: new method isList()
  • Arrays: method flatten() supports key preserving
  • Strings: new methods findPrefix() and normalizeNewLines()
  • Json: supports pretty output
  • Validators: new method isType()

Mailing

  • SmtpMailer: persistent connection

Others

  • minified version is PHAR file
  • ObjectMixin: magic methods setProperty(), getProperty(), isProperty() and addProperty() by @method
  • SafeStream: supports ftruncate (requires PHP 5.4+)
Tester
v0.9.5

30. 12. 2013

  • Assert::error() can test more than one error
  • small fixes

For more information see readme.md.

Tracy
v0.9.0

11. 12. 2013

First release of Tracy, the rebranded Nette Debug.

Tester
v0.9.4

11. 12. 2013

  • you can watch multiple directories via --watch
  • a lot of fixes

For more information see readme.md.

Nette
v2.0.13

5. 11. 2013

Nette Framework 2.0.13 has just been released and is now available for download. Feel free to update!

It fixes security bug in Latte and introduces new form validators NOT_EQUAL & BLANK.

For the details about the changes you can have a look at the Github diff.

Nette
v2.0.12

8. 8. 2013

Nette Framework 2.0.12 has just been released and is now available for download. Feel free to update!

It fixes few bugs in Nette\Database discovered in 2.0.11 (#1156, #1175, #1198), in netteForms.js, sanitizes server name in Nette\Mail, adds support for IPv6 in Nette\Http\RequestFactory and has better performance with APC.

For the details about the changes you can have a look at the Github diff.

Tester
v0.9.3

7. 8. 2013

  • output in TAP format using --tap
  • added interface for custom output handlers
  • smarter error messages, skips the same beginning part of compared strings
  • supports file masks like tester *.php
  • when expected & actual variables are stored to output/ subdirectory, message diff file.expected file.actual is printed

For more information see readme.md.

Tester
v0.9.2

19. 7. 2013

  • much better colorized error messages!
  • colors can be enabled or disabled by option --colors
  • added tests annotations @exitCode, @htmlCode, @outputMatch and @outputMatchFile
  • added annotation @throws for TestCase
  • Assert::match is fully customizable via Assert::$pattern and regular expressions
  • Assert::type accepts default PHP types
  • added new assertions Assert::matchFile, truthy and falsey

For more information see readme.md.

Nette
v2.0.11

11. 7. 2013

Nette Framework 2.0.11 has just been released and is now available for download. Feel free to update!

It contains a lot of fixes and improvements contributed by 17 authors:

  • Nette\Database is much faster
  • fixed are quotes in sent emails #634
  • added new modifier |noescape and n:name in Latte and improved escaping in HTML comments
  • new Adminer with better skin & autocomplete plugin in Sandbox, now accessible only from localhost
  • and much more (#700, #1026, #900, #1057, …)

For the details about the changes you can have a look at the Github diff.

Tester
v0.9.1

9. 7. 2013

After 4 years of development Nette Tester has become stable testing tool with a lot of cool features:

  • very easy and understandable API
  • each test is a standalone PHP script
  • fast parallel testing
  • code coverage analysis
  • watching folders for changes and automatically re-run tests
  • colorized output
  • HTML code testing

For more information see readme.md.

Nette
v0.9.7

3. 7. 2013

Nette
v2.0.10

8. 3. 2013

Nette Framework 2.0.10 has just been released and is now available for download. Feel free to update.

It contains a lot of improvements and fixes mostly in FileJournal and Database, contributed by 13 authors.

For the details about the changes you can have a look at the Github diff.

(Support for constants in config file introduced in 2.0.9 was removed due to BC break.)

Nette
v2.0.8

1. 1. 2013

New Year and new version of Nette Framework 2.0.8 has just been released. And is now available for download. Feel free to update!

Fixes and improvements:

  • Database: a lot of fixes, see changelog
  • security: String::random() uses even more entropy and now it's great
  • Neon: fixed error "Backtrack limit was exhausted" and it removes BOM
  • Debugger: "caused by" exception in better visible & some fixes
  • Cache: fixed problem with nested {cache} macros
  • Forms: added support for #hash part of URL

For the details about the changes you can have a look at the Github diff.

Nette
v2.0.7

28. 11. 2012

Nette Framework 2.0.7 has just been released and is now available for download. Feel free to update!

Fixes and improvements:

  • Database: implemented multi primary key support and a lot of fixes (in type detection, …)
  • Config: added support for anonymous services defined via bullets
  • Latte: added support for {input $control}, {label $control} and n:input=$control, where $control is object IFormControl
  • UI\Presenter: invalid URL parameters are ignored and do not throw 404 HTTP error
  • MicroPresenter: returns 404 HTTP error when parameter callback is missing
  • Session: session ID is not regenerated after 30 minutes
  • Mail: fixed sending BCC header via SMTP protocol
  • PresenterComponent: to override constructor and not to call its ancestor will not cause error
  • Debugger: sends error-code after every errors
  • Tests: test are updated to last version of Nette\Tester

For the details about the changes you can have a look at the Github diff.

Nette
v2.0.6

1. 10. 2012

Nette Framework 2.0.6 has just been released and is now available for download. Feel free to update!

Fixes and improvements:

  • Database: really a lot of fixes and improvements, added PostgreSQL tests
  • Tests: we are moved to Nette\Tester and using Travis CI
  • added FTP deployment tool
  • RobotLoader: smarter detection of changed files
  • Finder: added workaround for PHP bug in AppendIterator
  • added some workarounds for PHP 5.4.x and 5.3.16 bugs

For the details about the changes you can have a look at the Github diff.

Nette
v2.0.5

30. 8. 2012

Nette Framework 2.0.5 has just been released and is now available for download. Feel free to update! It contains a lot of minor improvements and bug fixes contributed by 10 authors.

Fixes and improvements:

  • Database: really a lot of fixes and improvements
  • Presenters: dependencies can be passed via inject*() methods
  • Latte: fixed {define} and dynamic blocks
  • FileResponse: fixed range processing
  • Validators: improved URL and email validator (client side & server side)
  • Debugger: dumps additional info for resources
  • Sandbox contains Adminer 3.5.1 with Nette skin (looks like API doc)

For the details about the changes you can have a look at the Github diff.

Nette
v2.0.4

30. 7. 2012

Nette Framework 2.0.4 (code name Lisboa) has just been released and is now available for download. Feel free to update. It contains a lot of minor improvements and bug fixes contributed by 22 authors.

Improvements:

  • Database: added support for foreign keys in PostgreSQL driver
  • Added support for getting public methods as Closure in PHP >= 5.3. $this->formSubmitted
  • Route: slash is not converted to %2F
  • Presenter: directory 'templates' may be located inside presenter's directory
  • Nette sandbox becomes a Composer package.

Changes:

  • Presenter: fixed array-to-string conversion errors in PHP 5.4
  • Fixes and improvements in Neon and Latte syntax.
  • Improved error messages in Presenter, Latte, DI Container.
  • Contains Adminer 3.4.0 with new Nette skin (looks like API doc)

For the details about the changes you can have a look at the Github diff.

Nette
v2.0.3

3. 4. 2012

Nette Framework 2.0.3 has just been released. It contains some minor improvements and bug fixes mainly for Database and NetteExtension, contributed by 14 authors.

Improvements:

  • Added $_SESSION to Debugger bluescreen.
  • Added syntax highlighted dump() in Linux.
  • Tests runs in parallel (reduce time from 2 minutes to 10 seconds).
  • Nette becomes a Composer package.

Changes:

  • Default value of header X-Frame-Options is now sameorigin
  • Default value of session autoStart changed to smart.
  • Introduces method Nette\Config\Configurator::setDebugMode() used to replace setProductionMode().

For the details about the changes you can have a look at the Github diff.

Nette
v2.0.1

24. 2. 2012

Nette
v2.0.0

2. 2. 2012

After years of development, after alpha & beta versions and 3 release candidates, we are very proud to announce the immediate availability of Nette Framework 2.0 final.

Nette Framework 2.0 has many innovations, some of them are unique in the PHP world:

  • full Dependency Injection support, extensively used in whole framework
  • new database layer with integrated awesome library NotORM
  • completely rewritten Latte, very handy templating language
  • customizable Debugger, developer's little helper with a lot of predefined panels
  • new markup language NEON
  • new ways to configure framework and applications
  • Nette stays to be one of the most secured framework in the world

…and a lot lot lot of enhancements in every part of framework.

Nette Framework also comes with new and great documentation. How to get started? Try Quick Start tutorial.

Nette Framework 2 is released. It's time to celebrate!

Application

  • better directory structure
  • default template for error codes 4xx, 403, 404, 405, 410 and 500
  • transmission of persistent parameters to the error-presenter
  • Route: support for the default values new Route('<presenter=Homepage><action=default>')
  • Route: shortcut Presenter:action (forum)
  • changed IRouter::constructUrl() second argument to Nette\Web\Uri.
  • support for rapid prototyping via via $router[] = new Route('login', function() {...})
  • solve complications with store & restoreRequest & flashMessage

Templates

  • remove at-sign @ from templates
  • unification of all macros syntax
  • syntax enhancement {=$var ? item} arrays {=[a, b, c]|join:' '} comments {var $prom = 123 /*, $name = ahoj*/} and array expansion {link default $id, (expand) $args, lang => cs}
  • new syntax {var $prom = 123, $name = ahoj}
  • new macros {first}, {last}, {sep} and {l} {r}
  • improved {cache} (forum)
  • new attributes n:class a n:href
  • extension .latte
  • automatic check of the crossing and not closing tags
  • refactoring LatteMacros into more classes
  • new way how to add Latte macros
  • support for XML in Latte
  • new form macros {form} {label} {control}
  • new form attribute <input n:name="email" ...>

Debug

  • added Debug Bar
  • added template for error 500 (in production)
  • URL or command line is logged
  • added Debug::log($message [, $priority])
  • added Nette\Debug::$scream = TRUE
  • clickable file names in "bluescreen"
  • FirePHP replaced with FireLogger
  • detection of developer / production environment with proxy servers
  • hiding "bluescreen" via ESC
  • added UserPanel

Forms

  • InstantClientScript replaced with Unobtrusive JavaScript (forum)
  • added support for HTML5
  • added validator Form::IMAGE

Caching

  • added ICacheJournal and FileJournal
  • added Nette\Caching\MemoryStorage
  • supports any variables as keys in a cache

Depencency Injection

  • implemented configurable DI container with autowiring
  • deprecated Environment
  • all classes (except Form) are independent on Environment
  • Nette\Web\HttpRequest is created via HttpRequestFactory
  • new config modes

others

  • new namespaces
  • added NEON, language for writing configuration
  • added Nette\Finder (forum )
  • added SmtpMailer (forum
  • added Nette\String::length(), compare(), toAscii() and safe regular expression via split(), match(), matchAll(), replace() and ArrayTools::grep()
  • added Nette\Json
  • added CallbackFilterIterator, RecursiveCallbackFilterIterator, MapIterator
  • added support for data attributes in Nette\Web\Html (forum)
  • RobotLoader supports netterobots.txt
  • RobotLoader detects file moving
  • loader.php defines constants NETTE, NETTE_VERSION_ID & NETTE_PACKAGE, NETTE_DIR
  • loader.php resets error_reporting (na E_ALL + E_STRICT), iconv.internal_encoding, mbstring.internal_encoding na UTF-8
  • created new testing framework Nette Tests
  • added tool Code-Checker
  • created tool APIGEN for generation API documentation
  • added Nette\Framework::$iAmUsingBadHost = TRUE
Nette
v0.9.6

18. 9. 2010

Řada 0.9 se uzavírá a souhrn všech bugfixů za poslední 2,5 měsíce najdete ve verzi 0.9.6. Update je doporučený a žádné nekompatibility by se objevit neměly.

Pár dní ještě 0.9.6 považujme za release candidate, kdyby se náhodou objevila nějaká chyba, promptně ji opravím.

Nette 0.9 RIP!

Nette
v0.9.5

30. 6. 2010

Venku je verze 0.9.5. Ta především opravuje řadu chybiček, jejichž kompletní výčet najdete v changelogu. Velkou interní změnou je, že repozitář byl převeden do PHP 5.3 a teprve z něj se generují distribuce frameworku určené pro PHP 5.2. Což vyřešilo nedostatky v generování prefixované verze. Druhou interní změnou je úprava adresářové struktury frameworku. Přičemž obě interní změny by neměly mít vliv na funkčnost.

Ze všech úprav bych zdůraznil jen několik:

  • Nette\Mail by měl mít fixnuté všechny známé nedostatky v kompatibilitě s emailovými klienty
  • metody Nette\Mail dále striktně kontrolují, zda jsou všechny parametry kódovány v UTF-8
  • SmartCachingIterator (tj. makro {foreach}) nyní umí iterovat i nad SimpleXMLElement
  • používejte login(), logout() a isLoggedIn(), volání starších metod vyvolá varování
  • nové konstanty NETTE, NETTE_VERSION_ID, NETTE_PACKAGE a také PHP_VERSION_ID pod PHP < 5.2.7
Nette
v0.9.4

14. 4. 2010

Světlo světa spatřila nová stabilní verze 0.9.4. Ta především opravuje řadu chybiček, jejichž kompletní výčet najdete v changelogu. Zároveň také přináší několik vylepšení:

Formuláře:

  • lze používat placeholdery %label, %name a %value ve výchozích chybových zprávách
  • vypnutí překladače na určitém prvku nevypne překládání chybových zpráv
  • zaměněno <form name="..."> za <form id="...">

Šablony

  • v modifikátorech lze používat mezery (např. {$var |truncate : 30}) a klíčová slova true, false, null
  • přidáno makro {var ...} jako alias pro {assign ...}
  • je podporován zápis {var item => value} i {var $item => value}
Nette
v0.9.3

28. 1. 2010

Po dvou měsících je tu verze 0.9.3. Přináší poměrně dost novinek a opravuje chybičky.

  • vylepšení jazyka o globální funkci callback() a Nette\Callback pro čitelnější zápis a volání callbacků
  • zásadního zrychlení dosáhla třída RobotLoader
  • opraven bug přehazující pořadí parametrů v URI
  • vylepšený RoutingDebugger zobrazuje více informací
  • přidána třída DateTime53 opravující zmršený DateTime v PHP 5.2 (podpora serializace & unix timestamp)
  • metoda createComponent() může vracet instanci
  • sjednoceno chování všech funkcí ve frameworku, kterým se jako parameter předává čas. Ten může být zadán buď jako objekt DateTime, řetězec ve formátu '+ 14 days', jako relativní počet sekund nebo jako UNIX timestamp.
  • přidána třída Nette\Web\HttpContext
  • přidány funkce String::padLeft() a String::padRight() (obdoba str_pad pro UTF-8)
  • deprecated: Uri::setPass() a getPass() nahrazuje Uri::setPassword() and getPassword()
  • deprecated: HttpResponse::expire() nahrazuje HttpResponse::setExpiration()
  • deprecated: Nette\Object::getClass() (důvodem je příliš obecný název, lze nahradit za $obj->reflection->name)
  • odstraněny třídy Nette\Loaders\SimpleLoader, Nette\Config\ConfigAdapterXml, Nette\Forms\RepeaterControl

Formuláře

  • InstantClientScript: formuláře generují zgruntu nový validační JavaScriptový kód. Ten by měl být lépe přizpůsobitelný (např. pro live validation) a je nezávislý na HTML ID. V této oblasti bude vývoj pokračovat, nicméně nové chování by mělo být stabilní.
  • HttpUploadedFile: příkaz move() řeší problematiku přístupových práv, umí vytvořit adresář a lze jej použít i pro více přesunů.
  • Html: vylepšeno chování metod getHtml() a getText(), takže objekty Html lze bez problémů používat v labelech apod.
  • deprecated: Form::processHttpRequest() bylo přejmenováno na Form::fireEvents()

Debug

  • globální funkce dump() jako ("nejen .(lze dumpovat víc proměnných)") zkratka pro Nette\Debug::dump()
  • Debug::enable() lze předat výčet IP adres
  • kvůli šetření místem nyní Debug nevytváří HTML logy pro opakující se chyby (zvažuju ukládat soubory komprimované)
  • opraveny nedostatky logování chyb na některých hostinzích

Šablony

  • isFirst() a isLast() podporuje renderování mřížek
  • v šablonách lze psát <?xml ... ?> bez kliček kvůli PHP parseru
  • Makro {debugbreak} podporuje XDebug
  • deprecated: LatteFilter::invoke potažmo CurlyBracketsFilter::invoke (zpravidla by mělo stačit inicializaci filtru odstranit)

Image

  • metoda resize() se zápornými argumenty zrcadlí obrázek (Image i ImageMagick)
  • metoda calculateSize() je nyní statická (BC break!)

Nette\Reflection

Asi nejvýraznější novinkou je nový soubor tříd Nette\Reflection, které sjednocují a rozšiřují možnosti meta-programování. Sem byla přesunuta podpora anotací a zpracování extension method. Řekl bych, že tohle bude příští velká věc, nicméně tuto oblast čeká ještě velký vývoj.

Cache a session

Co ve verzi 0.9.3 není?

Ve verzi 0.9.3 nejsou vývojové záležitosti jako tzv. nové snippety, nezměnila se třída Identity a Presenter používá starou adresářovou strukturu a má stále aktivní přepínače $oldLayoutMode a $oldModuleMode. Zmíněné novinky najdete až ve vývojové větvi 1.0-dev.

Nette
v0.9.2

10. 11. 2009

Po dvou měsících je tu další setinková stabilní verze. Ta především opravuje řadu odhalených chybiček, ale také nabízí několik nových vlastností:

  • Route: volitelné sekvence via [...] (POZOR: místo původních složených závorek jsou ve finální verzi hranaté)
  • nový testovací framework pro self-testing Nette
  • metoda setDefaultValue() na prvcích formuláře
  • nová adresářová struktura pro moduly (aktivuje se přes $oldModuleMode) a s tím související BC break - odstranění proměnných prostředí %templatesDir%, %presentersDir%, %componentsDir%, %modelsDir%
  • vylepšení Image::crop() a resize() (thanx to kravčo)
  • v presenterech lze k singletonům User a Session / SessionNamespace přistupovat přes metody getUser() a getSession().

Šablony:

  • předregistrované helpery: length, substr, number, replace, replaceRE, repeat, implode
  • proměnná $basePath nahrazující $baseUri (liší se v absenci pravostranného lomítka)
  • makro {status ...} pro odeslání HTTP kódu a {layout ...} jako alias pro {extends ...}
  • u definic bloků je nepovinný znak #

Kromě zmíněného BC breaku s proměnnými prostředí by se žádná nekompatibilní změna objevit neměla, takže upgrade na 0.9.2 je doporučený.

Poznámka pro uživatele development verze: OldPresenter a snippety s dvojtečkou jsou součástí jen vývojové verze (tj. 0.9.3-dev) a ve verzi 0.9.2 je nenajdete.

Nette
v0.9.1

18. 9. 2009

Pouhý měsíc po vydání 0.9.0 je tu další setinková stabilní verze. Co nabízí nového?

  • CurlyBrackets se přejmenoval na LatteFilter a byla finalizována podpora n:attributů a dopřána možnost měnit syntax maker via {syntax ...}
  • výrazně byl vylepšen životní cyklus formulářů
  • úpravy API doznal ServiceLocator a rozšířily se tak možnosti konfigurace přes config.ini
  • framework má nyní vlastní testovací framework (code coverage se blíží 80 %)
  • funkce presenterů byla formalizována a fungují jako konvertor z PresenterRequest -> IPresenterResponse
  • nové podoby se dočkal Requirements Checker
  • manipulace s obrázky zachovává poloprůhlednost
  • vylepšeno chování cache úložiště FileStorage v prostředí Windows
  • opravena řada bugů

Součástí distribuce je i nová verze dibi 1.2, jejíž hlavní novinkou je práce s datem prostřednictvím třídy DateTime, takže netrpí limitem pro UNIX timestamp.

Ačkoliv změn je poměrně dost, v jejich souvislosti jsem nezaznamenal žádné problémy, tudíž je možné je v této podobě považovat za stabilní a pustit se do dalšího vývoje. Ten se bude týkat především podpory AJAXu - ve formulářích, presenterech a šablonách.

Nette
v0.9.0

17. 8. 2009

Můžete dát sbohem verzi 0.8, má svého stabilního nástupce.

Co přináší verze 0.9.0 nového? Vylepšení je poměrně dost, jaké jsou ty nejdůležitější:

  • nová knihovna Nette\Mail pro odesílání emailů
  • CurlyBracketsFilter (nyní LatteFilter) prošel velkým vývojem a nově nabízí:
    • nová makra {ifset ...}...{/if}, {assign ...}, {default ...} a {control ...}
    • dynamická dědičnost šablon (zatím experimentální feature)
    • v případě chyby zobrazuje číslo řádku v šabloně
  • koncept chytrých továrniček pro komponenty nahrazující zapovězené metody prepare
  • přímočařejší předávání AJAXových dat přes $presenter->payload
  • nová verze Routing Debuggeru, zobrazující se jako widget na stránce
  • nový pomocník programátora Nette Debug Console a další ladící novinky
  • povinné volání metody startup() v Presenteru zabraňující možným chybám
  • cache nabízí uživatelské validátory (via Cache::CALLBACKS)
  • cache úložiště FileStorage rozděluje soubory do složek
  • přešli jsme na Git

Verze by měla být plně zpětně kompatibilní s v0.8 s výjimkou změn uvedených v tomto fóru (a ty jako vždy hlásí upozornění).

Nette
v0.8

4. 5. 2009

.

Nette
v0.7

23. 1. 2006

Released in 2008 as open source after 4 years of development.