Release Notes
Php Generator
v4.1.7
29. 11. 2024
- added support for PHP 8.4 features
- properties hooks
- asymmetric visibility
- property can be abstract / final
- interfaces can have properties
- added Visibility
ClassManipulator::implement()
can implement abstract classesClassManipulator::implementInterface()
renamed toimplement()
- PsrPrinter is not final
- Constant: type can be nullable
- Factory: fixed visibility of promoted property
Php Generator
v4.0.10
29. 11. 2024
Extractor::extractAll()
fixed file comment parsing- Factory: $withBodies cannot be used for internal classes/functions
- Printer: fixed falsy Attribute aren't printed (#142)
- added Visibility
Tracy
v2.10.9
7. 11. 2024
- Released version 2.10.9
- dumper: added cmd-click to open in editor
- dumper:
exposeDOMNode()
does not throw deprecation notices in PHP 8.4 - added workaround for Opera "feature" – 'Close tabs created for opening external apps'
- error 500: improved CSS style reset #581
- drop obsolete E_STRICT error level (#587)
- FileSession: greater $gcProbability value #585
- Logger: uses CRLF for mail headers #584
Http
v3.3.1
4. 11. 2024
- support for PHP 8.4
FileUpload::getSanitizedName()
changes the extension only for image files #239- RequestFactory: extract port from x-forwarded-host (#230)
- FileUpload: Initialize properties (#235)(#195)
- Session: keep exceptions chain on session_start (#240)
- Session: SessionSection class template annotation #225
- IResponse: added DateTimeInterface to setCookie $expire param (#237)
- readonly properties
Security
v3.2.1
4. 11. 2024
Routing
v3.1.1
4. 11. 2024
- support for PHP 8.4
Route::param2path()
allows all characters defined by RFC 3986 #14
Robot Loader
v4.0.3
4. 11. 2024
- support for PHP 8.4
Tester
v2.5.4
23. 10. 2024
- supports PHP 8.4
- TestHandler: improve cache file uniqueness (#454)
- DataProvider: parses INI files using INI_SCANNER_TYPED mode (BC break)
Forms
v3.2.5
22. 10. 2024
Container::addEmail()
: added $maxLength=255 #303- ChoiceControl, MultiChoiceControl: disabled items are processed in
getValue()
instead ofloadHttpData()
- removed return type from
__call()
nette/utils#315 - SelectBox: fixed 2edbd6c
- netteForms: uses the submitter property
Latte
v3.0.19
6. 10. 2024
Latte
v3.0.20
6. 10. 2024
{default}
is evaluated lazily|localDate
respects the time zone set in PHP #380- added
|filter
- FileLoader: fixed path normalization for phar and absolute paths #378
- TagParser: allow trailing comma in |filter(...)
- TranslatorExtension:
translate()
can return \Stringable #372 CachingIterator::__get()
does not return a reference
Di
v3.2.3
5. 10. 2024
- support for PHP 8.4
- md5 replaced with xxHash
- fixed
ReflectionParameter::getDefaultValue()
error #315
Schema
v1.3.1
5. 10. 2024
Schema
v1.3.2
5. 10. 2024
v4.0.3
4. 10. 2024
- SendmailMailer: the use of -f option in the mail command can be disabled (#98)
- support for PHP 8.4
Component Model
v3.1.1
4. 10. 2024
- support for PHP 8.4
- improved phpDoc
Neon
v3.4.4
4. 10. 2024
- support for PHP 8.4
- Encoder: fixed encoding of control characters #72
Neon
v3.3.4
4. 10. 2024
- support for PHP 8.4
- Encoder: fixed encoding of control characters #72
Neon::decodeFile()
is atomic
Application
v3.2.6
10. 9. 2024
- LatteExtension: added option 'locale'
- LatteExtension: automatically passes translator to Latte\Essential\TranslatorExtension
- support for PHP 8.4
Php Generator
v4.1.6
10. 9. 2024
- added ClassManipulator
- Parameter & Property:
isNullable()
returns true when default value is null (possible BC break) - added TraitsAware::hasTrait method (#163)
- support for PHP 8.4
Database
v3.2.3
19. 8. 2024
- tests: added more tests
- MySQL: supportBooleans renamed to convertBoolean
- SqlLiteral: added
getSql()
- tests: added
connectToDB()
- marked readonly properties
- PDO: error mode is ERRMODE_EXCEPTION by default
- drivers: improved getting db structure
MySqlDriver::initialize()
removed support for 'utf8' charset before 5.5.3- Selection: fixed type error on empty aggregations #309
SqlsrvDriver::applyLimit()
removed support for SQL Server < 2012- Selection: support for generics
normalizeRow()
: removed extra float handling #307- tests: added tests for Reflection
Reflection::getTable()
can access unlisted table- Reflection: removed $schema
- PascalCase constants
- ResultSet, Selection:
fetchPairs()
accepts callback Helpers::detectType()
supports 'INT UNSIGNED'- md5 replaced with xxHash
- removed return type 'never' to allow inheritance #303
Database
v3.2.4
19. 8. 2024
- ResultSet, Selection:
fetchPairs()
accepts callback - Selection: support for generics
- drivers: improved getting db structure
- Reflection improvements
normalizeRow()
: removed extra float handling #307Helpers::detectType()
supports 'INT UNSIGNED'- md5 replaced with xxHash
- removed return type 'never' to allow inheritance #303
- MySQL: supportBooleans renamed to convertBoolean
- PascalCase constants
MySqlDriver::initialize()
removed support for 'utf8' charset before 5.5.3- Selection: fixed type error on empty aggregations #309
SqlsrvDriver::applyLimit()
removed support for SQL Server < 2012- support for PHP 8.4
Database
v3.2.2
9. 8. 2024
- ResultSet, Selection:
fetchPairs()
accepts callback - Selection: support for generics
- Reflection improvements
normalizeRow()
: removed extra float handling #307- renamed IStructure::FIELD_* to Type::*
Helpers::detectType()
supports 'INT UNSIGNED'- md5 replaced with xxHash
- removed return type 'never' to allow inheritance #303
- PascalCase constants
- support for PHP 8.4
Utils
v4.0.5
7. 8. 2024
- added Cast
Strings::matchAll()
: added option 'lazy'- added
Arrays::mapWithKeys()
&Iterables::mapWithKeys()
- added
Iterables::memoize()
&toIterator()
- Image: GD extension detection added
- support for PHP 8.4
Tracy
v2.10.8
7. 8. 2024
- bar.js: initializes Tabs (#580)
- refactoring
- support for PHP 8.4
Bootstrap
v3.2.4
7. 8. 2024
- support for PHP 8.4
- fixed rootDir detection in older Composer
Caching
v3.3.1
7. 8. 2024
- added PSR-16 adapter (#77)
- support for PHP 8.4
Latte
v3.0.18
6. 8. 2024
- added support for locale, affects
|localDate
,|number
,|bytes
and|sort
filters - {import} supports arguments
- unquoted strings can contain
+
- coreParentFinder is called only for main template (BC break)
- support for PHP 8.4
Forms
v3.2.4
5. 8. 2024
Container::getValue()
supports conversion to enums [Close #337]- UploadControl: added
setNullable()
- netteForms: rewritten to TypeScript
- Button: is omitted from values #330
- DefaultFormRenderer: fixed cummulate instances of Nette\HtmlStringable #335
Helpers::getSupportedTypes()
returns array #332- support for PHP 8.4
Latte
v3.0.17
9. 7. 2024
- added support for locale, affects
|date
,|number
,|bytes
and|sort
filters - {import} supports arguments
- coreParentFinder is called only for main template (BC break)
- support for PHP 8.4
Neon
v3.4.2
18. 6. 2024
- Decoder: fixed JSON parsing with \n before comma
- Decoder: big integers are decoded as strings #9
Neon
v3.4.3
18. 6. 2024
- Decoder: fixed JSON parsing with \n before comma
- Decoder: big integers are decoded as strings #9
Robot Loader
v4.0.2
18. 6. 2024
- md5 replaced with xxHash
- checks whether temp directory is absolute
Tester
v2.5.3
18. 6. 2024
Di
v3.2.2
16. 5. 2024
- Container: refactoring
- NeonAdapter: resolving of constants and enums moved here from
filterArguments()
(BC break) Container::getServiceType()
ignores dynamically added services (BC break)Container::getByType()
fixed cooperation with dynamic factory #314- Resolver: better exception when
normalizeEntity()
fails due to service replacement - Revert "LocatorDefinition: deprecated support for create($name) method (BC break)"
Application
v3.2.4
12. 5. 2024
- ApplicationExtension: checks the correct usage of attributes
Component::tryCall()
throws BadRequestException- PresenterFactoryCallback: refreshes page instead of creating presenters dynamically
Multiplier::createComponent()
allow to return a null (#327)- LatteExtension: fixed v3.2.3
Application
v3.2.5
12. 5. 2024
- ApplicationExtension: checks the correct usage of attributes
Component::tryCall()
throws BadRequestException- PresenterFactoryCallback: refreshes page instead of creating presenters dynamically
Multiplier::createComponent()
allow to return a null (#327)- LatteExtension: fixed v3.2.3
Application
v3.1.15
12. 5. 2024
Component::tryCall()
throws BadRequestException- AbortException & BadRequestException extends LogicException
- Latte: sets Tag::$node
- composer: relaxed dependencies
Php Generator
v4.1.5
12. 5. 2024
- added
PhpNamespace::getClass()
&getFunction()
- added
CommentAware::removeComment()
- added
PhpFile::removeNamespace()
- Factory, Extractor: sets flag readonly for promoted properties #158 (reverts "Factory: properties in readonly classes are not readonly")
- ClassType: cloning includes attributes and parameters
- GlobalFunction, Method:
from()
accepts first-class callables
Database
v3.2.1
7. 5. 2024
- added reflection for Table, Column, Index, ForeignKey
- returns date-time as immutable Nette\Database\DateTime (when 'newDateTime' is enabled) #270
Forms
v3.2.3
5. 5. 2024
- netteForms: modernized code
- netteForms: reimplemented compact transmission mode via formdata event
- netteForms: processes only elements with 'data-nette-rules'
- netteForms: added typehints to jsDoc
- netteForms: improved badInput reporting
- netteForms: rule 'length' works with numbers #329
- Form: does not show 'no associated handlers' error if the form is not submitted by the button
- RadioList: added
setItemAttribute()
&setItemLabelAttribute()
- Blueprint: fixed nullable types detection
- TextBase, HiddenField: added
isNullable()
Latte
v3.0.15
29. 4. 2024
- added filter
|group
- filter
|sort
accepts iterable Filters::first()
accepts iterable- Engine: cache-key divided into key and signature, that is stored in a lock file
- Engine: added underscore to template class name
Loader::isExpired()
deprecatedBlueprint::printClass()
rewritten (BC break)
Latte
v3.0.16
29. 4. 2024
- added filter |group & function group()
- filter
|sort
accepts iterable - filter |sort: added by & byKey
Filters::first()
accepts iterable- Engine: cache-key divided into key and signature, that is stored in a lock file
- Engine: added underscore to template class name
Loader::isExpired()
deprecatedBlueprint::printClass()
rewritten (BC break)
Tracy
v2.10.7
29. 4. 2024
- bluescreen: added php://input preview
- bluescreen: allows to create classes with two-letter namespace
- bluescreen: stack trace is reduced before analysis
- bar: label 'Errors' => 'Warnings'
Bootstrap
v3.2.3
19. 4. 2024
- added variable
%rootDir%
Application
v3.2.2
15. 4. 2024
- added feature "link aliases"
- added attributes
#[Requires]
and#[Deprecated]
- Presenter: support for templates without /template folder
- PresenterFactory: support for location Foo/FooPresenter via **
- Component: createComponent
<name>
methods are checked bycheckRequirements()
Component::checkRequirements()
delegated to Presenter- Latte: CacheExtension & FormExtension are added before user extensions #320
- Latte: UIExtension is added before user extensions if $control is passed to
LatteFactory::create()
- RoutingPanel: show presenter class even if it doesn't exist
- Revert "ApplicationExtension: $catchExceptions can be '4xx' in addition to bool"
Control::flashMessage()
enhanced type hint
Application
v3.2.3
15. 4. 2024
- added feature "link aliases"
- added attributes
#[Requires]
and#[Deprecated]
- Presenter: added
switch()
- PresenterFactory: support for location Foo/FooPresenter via
**
- Presenter: support for templates without /template folder
- LinkGenerator: unified with link generation in presenters
- added
ComponentReflection::getActionRenderMethod()
&getSignalMethod()
- Latte: CacheExtension & FormExtension are added before user extensions #320
- Latte: UIExtension is added before user extensions if $control is passed to
LatteFactory::create()
- RoutingPanel: show presenter class even if it doesn't exist
- Revert "ApplicationExtension: $catchExceptions can be '4xx' in addition to bool"
Forms
v3.2.2
1. 4. 2024
- SelectBox: prompt
<option>
is hidden - SelectBox: prompt key is always unique
- typos
Tracy
v2.10.6
31. 3. 2024
- info panel: added TS indicator & xdebug modes
Helpers::improveException()
improved- js: unload replaced with pagehide #576
Latte
v3.0.14
19. 3. 2024
hasBlock()
fixed template retrieval #357- {contentType}: fixed behavior when used inside
<script>
#356 - n:syntax: restores syntax after </ #358
- added FunctionExecutor for template functions
- n:syntax must not have a prefix
- fixed positions of FilterNode
- TagLexer: typo in regexp nette/application#321
Filters::safeUrl()
: widened supported types- PHP 8.4 compatibility
- refactoring
Application
v3.2.1
11. 3. 2024
- added Application::$error4xxPresenter & DI option
- ApplicationExtension: option 'mapping' can be string
- ApplicationExtension: $catchExceptions can be '4xx' in addition to bool
- Application::$catchExceptions is silently deprecated
- Presenter & others: injected services are readonly
- Presenter: $payload access refactoring
Bootstrap
v3.2.2
10. 3. 2024
- CacheExtension: complete path is passed since nette/caching 3.3.0
Caching
v3.3.0
10. 3. 2024
- Bulk write implementation (#73)
- CacheExtension: accepts complete path (BC break)
- CacheExtension, FileStorage: checks whether directory is absolute
- removed Nette\SmartObject
Php Generator
v4.1.4
7. 3. 2024
- PsrPrinter: opening bracket on the correct line #155
- Make
ClassLike::from
return type assert the subclass type (BC break) (#154) Dumper::dumpArray()
,dumpArguments()
optimization- Dumper: simplified list with negative keys
- added parameter $overwrite to
addMember()
,addMethod()
,addProperty()
,addConstant()
,addCase()
#152 - Factory: parameters 'int $foo = null' are parsed as '?int'
Forms
v3.2.1
6. 3. 2024
- netteForms: converts float & int to numbers #313
- partially revert "some classes marked as final (BC break)"
SubmitButton::setValidationScope()
accepts stringsContainer::getUntrustedValues()
has default value
Di
v3.2.1
4. 3. 2024
Di
v3.2.0
6. 2. 2024
- requires PHP 8.1
- uses PHP 8.1 features
- Sensitive parameters are put in markers /sensitive{/ and /}/
- added support for first-class callable syntax in NEON
- SearchExtension: added 'exclude -> files'
- ServicesExtension: locator supports Statement (#294)
changes
- Resolver: only optional parameters are autowired with default value (BC break)
- generated accessors/factories must have defined return type (BC break)
- %parameters% is deprecated (BC break)
- LocatorDefinition: deprecated support for
create($name)
method (BC break) - PhpGenerator: warns about suspicious dumping of objects
Di
v3.1.9
4. 2. 2024
- ParametersExtension: exports both statements and dynamic parameters, preloads only the latter
- allowed %foo.bar% expansion of Statement
- SearchExtension: also searches for accessors
Resolver::autowireArgument()
fixed handling of new-initializer with typehint #302- InjectExtension: added type checking
NeonAdapter::removeUnderscoreVisitor()
checks if key doesn't exist
Http
v3.2.4
30. 1. 2024
- FileUpload: added
getSuggestedExtension()
- RequestFactory: unify and fix host parsing (#229)
Component Model
v3.1.0
21. 1. 2024
- requires PHP 8.1
- uses PHP 8.1 features
- added
Container::getComponentTree()
Container::getComponents()
parameters are silently deprecated, returns array when $deep is false (BC break)
Forms
v3.2.0
21. 1. 2024
- requires PHP 8.1
- uses PHP 8.1 features
- Latte: {inputError} must have argument
- BaseControl, ControlGroup::getOption() parameter $default is deprecated
- Container: getValues(true) is deprecated (BC break)
Forms
v3.1.15
21. 1. 2024
- added Blueprint, replaces LatteRenderer, DataClassGenerator, {formPrint}, {formClassPrint}
- DateTimeControl: default date for 'time' is 0001-01-01
- examples: updated bootstrap examples
- Latte: sets Tag::$node
- Latte: fixed rendering of empty
<label>
for CheckboxList/RadioList items
Http
v3.3.0
21. 1. 2024
- requires PHP 8.1
- uses PHP 8.1 features
Routing
v3.1.0
21. 1. 2024
- requires PHP 8.1
- uses PHP 8.1 features
Security
v3.2.0
21. 1. 2024
- requires PHP 8.1
- uses PHP 8.1 features
- removed deprecated IUserStorage (BC break)
Schema
v1.3.0
21. 1. 2024
- requires PHP 8.1
- uses PHP 8.1 features
Schema
v1.2.5
21. 1. 2024
Tester
v2.5.2
21. 1. 2024
- Implemented
console-lines
mode which prints each test on separate line. (#443) - DomQuery: searches starting from current node
Environment::setupFunctions()
creates global functionstestException()
Php Generator
v4.1.3
18. 1. 2024
- Extractor: supports PHP-Parser 5.0 (#150)
- Extractor: fix escaping quotes when converting to double quoted string #151
- Extractor: NOWDOC/HEREDOC are not converted to single line strings
- Dumper: added $customObjects
- Dumper: refactoring, added
dumpCustomObject()
- Printer: option $omitEmptyNamespaces is applied by
printFile()
[Close #147]
Utils
v4.0.4
17. 1. 2024
- added
Iterables
- added
Arrays::firstKey()
,lastKey()
- added
Arrays::filter()
Arrays::first()
&last()
: added parameter $elseArrays::first()
&last()
: added parameter $predicate #305- added
Image::getSupportedTypes()
- Arrays: improved phpDoc
- utilizes Random\Randomizer in PHP 8.3
- StaticClass: fixed compatibility with PHP 8.3.2
Strings::trim()
trims unicode spaces and ZWSP (#304)
Latte
v3.0.13
9. 1. 2024
- added support for application/ld+json (#353)
- fixed escaping after {contentType xml}
- Filters & Passes: refactoring
- removed Filters::$xml
Database
v3.2.0
5. 12. 2023
- requires PHP 8.1
- added PHP 8 typehints, uses PHP 8.1 features
- MySqlDriver: DECIMAL with precision=0 is returned as int (BC break)
- normalizeRow: converts zero-date 0000-00-00 to NULL (BC break)
- normalizeRow: time columns resets date to 0001-01-01 (BC break)
- Numeric/decimal data type is detected as FIELD_DECIMAL
- MySqlDriver: TINYINT(1) is returned as bool (when 'supportBooleans' is enabled)
Safe Stream
v3.0.1
26. 11. 2023
- support for PHP 8.3
- removed error suppression
Latte
v3.0.11
9. 11. 2023
- added n:else
- exception handler can throw exception #307
- JumpNode: correctly closes all HTML elements #340
- uses AuxiliaryNode to hide usage of internals #347
- {exitIf} must not be in
prepare()
changes:
- removed variable Tag::$data,
Tag::closestTag()
finds by class name - StaticCallNode renamed to StaticMethodCallNode
- RegexpException replaced with CompileException & RuntimeException
- ExpressionBuilder is deprecated
Latte
v3.0.12
9. 11. 2023
- added n:else
- exception handler can throw exception #307
- JumpNode: correctly closes all HTML elements #340
- uses AuxiliaryNode to hide usage of internals #347
- {exitIf} must not be in
prepare()
changes:
- removed variable Tag::$data,
Tag::closestTag()
finds by class name - StaticCallNode renamed to StaticMethodCallNode
- RegexpException replaced with CompileException & RuntimeException
- ExpressionBuilder is deprecated
Latte
v2.10.10
7. 11. 2023
support for PHP 8.2, 8.3
Database
v3.1.8
2. 11. 2023
- support for PHP 8.3
- used PhpStorm Language attribute
Database
v3.1.9
2. 11. 2023
- support for PHP 8.3
- used PhpStorm Language attribute
Caching
v3.2.3
2. 11. 2023
- support for PHP 8.3
v4.0.2
2. 11. 2023
- SmtpMailer: fixed problem with empty response with slow SMTP server
v3.1.11
2. 11. 2023
- support for PHP 8.3
- SmtpMailer: fixed problem with empty response with slow SMTP server
Http
v3.2.3
2. 11. 2023
- support for PHP 8.3
- FileUpload: detects supported images
- RequestFactory: fixed port detection when HTTP_HOST & SERVER_PORT are used #223
- removed fix for IE
Php Generator
v4.1.2
29. 10. 2023
Utils
v4.0.3
29. 10. 2023
- added ImageColor, replaces
Image::rgb()
- added
Image::rectangleWH()
,filledRectangleWH()
,calculateTextBox()
- Type: fixed resolving of 'static' nette/di#295
Forms
v3.1.13
29. 10. 2023
- added
addDate()
,addTime()
&addDateTime()
- netteForms: min/max/range can compare strings
- tests: grunt replaced with karma
- FormsExtension: added
getCacheKey()
to force refresh cache
Forms
v3.1.14
29. 10. 2023
- added
addDate()
,addTime()
&addDateTime()
,addColor()
- netteForms: min/max/range can compare strings
- AVIF image support
- tests: grunt replaced with karma
- FormsExtension: added
getCacheKey()
to force refresh cache
Latte
v2.11.7
18. 10. 2023
- support for PHP 8.3
Security
v3.1.8
18. 10. 2023
- support for PHP 8.3
- constants are PascalCase
- used #[\SensitiveParameter] to mark sensitive parameters
Php Generator
v4.1.1
17. 10. 2023
- ClassType: added
inheritMethod()
&inheritProperty()
- Printer: added option $omitEmptyNamespaces
- added
ConstantsAware::getConstant()
Extractor::extractAll()
extracts only top-level classes and functions, fixed file comment parsing- Extractor: extracts native PHP values
- ClassType:
getType()
is deprecated - Printer: fixed falsy Attribute aren't printed (#142)
Di
v3.1.6
15. 10. 2023
- ParametersExtension, Container: redesigned way of handling dynamic parameters via
getParameter()
#291 #288 - more self explanatory message for factory and service mismatch (closes #199) (#284)
- Support list
<Type>
syntax for autowiring a collection of services (#293) - Resolver: added support for named variadics #289
- ParametersExtension: better validation exception for dynamic parameters
- ContainerPanel: refactoring
- Container: detects circular reference for parameters
- Option 'class' is allowed again
Di
v3.1.7
15. 10. 2023
- ParametersExtension, Container: redesigned way of exporting dynamic parameters via
getParameter()
#291 Helpers::expand()
allow concatenation of Statements #288- more self explanatory message for factory and service mismatch (closes #199) (#284)
- Support list
<Type>
syntax for autowiring a collection of services (#293) - Resolver: added support for named variadics #289
- ParametersExtension: better validation exception for dynamic parameters
- ContainerPanel: refactoring
- Container: detects circular reference for parameters
- ServiceDefinition: setup: prepends @self in depth
- Option 'class' is allowed again
Di
v3.1.8
15. 10. 2023
- ParametersExtension, Container: redesigned way of exporting dynamic parameters via
getParameter()
#291 Helpers::expand()
allow concatenation of Statements #288- more self explanatory message for factory and service mismatch (closes #199) (#284)
- Support list
<Type>
syntax for autowiring a collection of services (#293) - Resolver: added support for named variadics #289
- ParametersExtension: better validation exception for dynamic parameters
- ContainerPanel: refactoring
- Container: detects circular reference for parameters
- ServiceDefinition: prepends @self to setup immediately
- Option 'class' is allowed again
Latte
v3.0.10
11. 10. 2023
- added function
hasBlock()
#345 Filters::safeUrl()
accepts Stringable- implemented mandatory escaping (cannot be disabled using |noescape)
- In
<script type=unknown>
is HTML not escaped - Improved escaping in
<script type=text/html>
- Escaper: better detection of type in
<script>
&<style>
- FilterExecutor: refactoring, info-aware filter can be dynamic
Filters::strLength()
uses mbstring, iconv and then utf8_decode
Forms
v3.1.12
10. 10. 2023
- support for PHP 8.3
- added
addFloat()
Container::getValues()
respects validation scope #287- netteForms: bad numbers are checked at the beginning #289
- netteForms: the 'number' element value is not available only on badInput error
- netteForms: resets toggles when form is reset #306
- Latte: split initialization and form rendering
- netteForms: showModal uses
<dialog>
by default - removed fix for IE
- Container: const Array changed to public #301
Application
v3.1.14
9. 10. 2023
- added attribute #Parameter
- RoutingPanel: redesigned #285
- Application: previous presenter is passed to error presenter (#317)
- SnippetNode, SnippetAreaNode: name can be class constant nette/latte#346
- Presenter: added PATCH to $allowedMethods
- MicroPresenter: injects service only for non-builtin types
ComponentReflection::convertType()
supports true & false- Latte: {layout auto} always call
Presenter::findLayoutTemplateFile()
Routing
v3.0.5
9. 10. 2023
- RouteList:
match()
split intoprepareRequest()
andcompleteParameters()
RouteList::withPath()
trailing slash is optional #11
Tracy
v2.10.4
29. 9. 2023
- code highlighting moved to CodeHighlighter, implemented own PHP syntax highlighter
- css: consistent gaps between blocks
- bluescreen.css: adjusted spacing
- BlueScreen: fixed highlighted line in CLI
- is_file may trigger error #572
- table-sort.js: distinguishes a click from a selection
Helprs::utf8Length()
uses mbstring, iconv and then utf8_decode- constants are PascalCase
Tracy
v2.10.5
29. 9. 2023
- code highlighting moved to CodeHighlighter, implemented own PHP syntax highlighter
- css: unified spaces to --tracy-space & top margin
- Dumper: added WeakMap support, improved SplObjectStorage & ArrayObject dump
- BlueScreen: fixed highlighted line in CLI
- is_file may trigger error #572
- table-sort.js: distinguishes a click from a selection
Helprs::utf8Length()
uses mbstring, iconv and then utf8_decode- constants are PascalCase
Neon
v3.4.1
27. 9. 2023
- support for PHP 8.3
- syntax: allowed tab as separator for dashed-blocks
- INF & NAN encoding throws an exception #69
Robot Loader
v4.0.1
26. 9. 2023
- support for PHP 8.3
- fixed parser #28
- removed Nette\SmartObject
Tracy
v2.9.8
25. 9. 2023
- BlueScreen:
highlightLine()
produces extra</code>
- is_file may trigger error #572
- table-sort.js: distinguishes a click from a selection
Debugger:barDump()
: pass Debugger::$maxItems option to Dumper (#563)- Dumper: clones Ds\Collection (#561)
- bluescreen: checks if $_SERVER['argv'] is set (#568)
- create-phar: attributes are not considered comments in PHP 7 #562
Bootstrap
v3.2.1
23. 9. 2023
v4.0.1
23. 9. 2023
Di
v3.0.17
21. 9. 2023
- Resolver: added support for named variadics #289
- Resolver: tolerates nullable types when resolving
- Container: added
initialize()
Di
v3.1.4
20. 9. 2023
- ParametersExtension: parameters containing expressions have static value '* unavailable value *'
- ParametersExtension: dynamic parameters are evaluated immediately #291
- option 'class' is allowed again
Utils
v4.0.2
19. 9. 2023
Strings::length()
uses mbstring, iconv and then utf8_decode #299- Finder:
getType()
replaced withisDir()
/isFile()
- StaticClass: constructor is private nette/di#292
- Arrays: add generic type declaration for
some()
,every()
andmap()
(#298) - FileSystem: can be used as instance
Latte
v3.0.9
8. 9. 2023
- improved support for variable tags <{$foo}>
- Linter: refactoring, added getEngine()
- TemplateLexer: rewritten that functions are not generators, exceptions are thrown in parsers
Php Generator
v4.1.0
29. 8. 2023
- ClassType::class(), interface(), traits() & enum() are deprecated
- removed Nette\SmartObject
- removed deprecated stuff
Application
v3.1.13
27. 8. 2023
- LatteExtension: added options strictParsing & phpLinter
Application
v3.1.12
27. 8. 2023
- LatteExtension: added options strictParsing & phpLinter
Latte
v3.0.8
13. 8. 2023
- added support for magic constants LINE, FILE, DIR
- added strict parsing mode via
Engine::setStrictParsing()
- added support for variable tags
<{$foo}>
- added constant Template::Source
- n:tag supports XML
- in XML are tag names case sensitive
- content in
</foo ...>
is not allowed (BC break) - TemplateLexer is driven from parser
- TemplateParserHtml: HTML attribute name can be PrintNode or string (BC break)
TokenStream::throwUnexpectedException()
reports only single token
Schema
v1.2.4
9. 8. 2023
- support for PHP 8.3
- constants are PascalCase
Di
v3.1.3
9. 8. 2023
- support for PHP 8.3
- Resolver: tolerates nullable types when resolving
Latte
v3.0.7
7. 8. 2023
- smarter way to work with HTML attributes (possible BC break)
- allow {exitIf} in {define} (#334)
Engine::enablePhpLinter()
allows to lint generated PHP templates- ForeachNode, TagParser: added native parser for foreach-variables #342
- TagParser: support dynamic class constant fetch in PHP 8.3
- Expression nodes: added some validators
- ArrayNode, TagParser: distinguish between
array()
andlist()
via $kind ArrayNode::fromArguments()
rewritten toPrintContext::argumentsAsArray()
(BC break)- forbidden variable
$GLOBALS
Php Generator
v4.0.8
30. 7. 2023
- support for PHP 8.3
- Factory: properties in readonly classes are not readonly
- FunctionLike: added
getParameter()
&hasParameter()
- ConstantsAware: added
hasConstant()
(#133)
Tracy
v2.10.3
30. 7. 2023
Utils
v4.0.1
30. 7. 2023
- support for PHP 8.3
- added
Image::isTypeSupported()
- added enum ImageType
- Finder:
collect()
returns list - Finder: improved exception when directory is missing
- Finder: default mask is '*'
- improved type annotations (#290)
Callback::unwrap()
returns correct class name for private methods
Tester
v2.5.1
30. 7. 2023
Application
v3.1.11
28. 4. 2023
- RoutingPanel: URL & link to presenter moved to the top
- Latte: n:snippet works with
<script>
- Latte: n:href prints line
- constants are PascalCase
Php Generator
v4.0.7
26. 4. 2023
Tracy
v2.10.1
28. 3. 2023
- Exposer: recognizes virtual properties of native classes
- Fixes native class dumping [Closes #558]
Tracy
v2.10.2
28. 3. 2023
- Exposer: recognizes virtual properties of native classes
- Fixes native class dumping [Closes #558]
Http
v3.2.2
18. 3. 2023
- SessionExtension: don't set readAndClose if null (#213)
- Improved https recognition behind load balancer (#221)
- RequestFactory: fix X-Forwarded-Host mixup with remote host (#222)
- RequestFactory: performance optimization #220
- RequestFactory: fixed filter detection
- Url: host can end with dot #198
- added
Session::getSectionNames()
, replacement forgetIterator()
Http
v3.1.8
18. 3. 2023
Php Generator
v4.0.6
13. 3. 2023
- Printer: print brace on next line when method/function has typehint
- Printer: promoted parameters / parameter with attributes are always multiline
- Printer: printAttributes & printReturnType are protected #123
- used PhpStorm Language attribute
Di
v3.1.2
13. 3. 2023
- ContainerPanel: removed padding & word-break for dumps
Resolver::autowireArguments()
fixed support for variadics- fixed exception messages
- fix
Container::getByType()
compatibility with PHPStan (#285)
Di
v3.0.16
13. 3. 2023
- ContainerPanel: removed padding & word-break for dumps
Resolver::autowireArguments()
fixed support for variadics- fixed exception messages
v3.0 maintenance has been ended, please update to v 3.1
Forms
v3.1.11
8. 3. 2023
Latte
v3.0.6
1. 3. 2023
- allowed trailing comma in
{var}
and{parameters}
- unquoted strings can contain
.
- TemplateParserHtml: correctly catches non-valid tag content #329
- TagParser: correct concatenation precedence
- NameNode: updated list of keywords, enumerated magic constants
- Node:
getIterator()
is abstract (BC break) - renamed Filters::escapeHtmlRawText -> convertJSToHtmlRawText, Expression\ArrayItemNode -> Php\ArrayItemNode, Expression\ClosureUseNode -> Php\ClosureUseNode and EncapsedString* -> InterpolatedString*
Tracy
v2.10.0
28. 2. 2023
- requires PHP 8.0
- added PHP 8 typehints
- BlueScreen: added support for sensitive markers /sensitive{/ and /}/ [Closes #426]
- BlueScreen: added source to header
- Dumper: added support for enum/flags properties
- Debugger::timer: switch from microtime to hrtime
- CSP: requires 'script-dynamic'
- removed FireLogger (BC break)
Tracy
v2.9.7
28. 2. 2023
- bar.js: toggle & dumper now works in panel in new window #554
- BlueScreen: added 'authorization' to keysToHide #365
- Dumper: added support for sensitive values in PHP 8.2
- dumper.js: highlights same instances in whole
<tracy-div>
- bar.js: window.TracyAutoRefresh = false works now
- Info panel: better responsivity
- open-editor: slash after
action
is optional
Tester
v2.5.0
6. 2. 2023
- requires PHP 8.0
- added PHP 8 typehints
- Capture stderr of test via temp file and output it in test results [Closes #420] (#438)
- Environment::setupFunctions() creates global functions test(), setUp() & tearDown()
- TestCase: lists the running methods
- Assert::equal() added flags $matchOrder & $matchIdentity
- constants are PascalCase
- Dumper & Assert: dumps true/false/null in lowercase
Tracy
v2.9.6
6. 2. 2023
- TracyExtension: sets $mailer only to Tracy\Logger #549
- TracyExtension: compatibility with nette/di
- added PascalCase constant aliases
- dumper.js builds elements even if is called via Toggle.
toggle()
- bar.css: removed extra margin/padding for dumps
Database
v3.1.7
2. 2. 2023
- composer: allows nette/utils 4.0
Security
v3.1.7
2. 2. 2023
- composer: allows nette/utils 4.0
Utils
v4.0.0
2. 2. 2023
- uses PHP 8 featurs
- includes a completely rewritten Finder
- ArrayHash & ArrayList: support iteration with reference (#289)
- Finder: completely rewritten
- Translator: changed interface, accepts and returns string|Stringable [Closes #231]
- PascalCase constants
- Strings: added support for UTF-8 offsets in regexp
new methods:
- Nette\Utils\Json::decodeFile() reads JSON from a file
- Nette\Utils\FileSystem::unixSlashes() & platformSlashes() converts slashes to Unix slashes
- Nette\Utils\Strings::ord(), unixNewLines() & platformNewLines()
- Nette\Utils\Helpers::compare() compare using the operator
new parameters:
- Nette\Utils\Strings::split() added parameter $limit
- Nette\Utils\Strings::replace() added parameters $captureOffset, $unmatchedAsNull
- Nette\Utils\Strings, Nette\Utils\Arrays, Nette\Utils\Json: flags replaced with parameters
removed
- Reflection: removed obsolete getReturnType(), getParameterType(), getPropertyType() (BC break)
v3.1.10
18. 1. 2023
- MailExtension: renamed option 'secure' -> 'encryption'
- composer: allows nette/utils 4.0
Routing
v3.0.4
18. 1. 2023
- composer: allows nette/utils & http 4.0
- cs
Utils
v3.2.9
18. 1. 2023
- Type: supports Disjunctive Normal Form Types
- Validators: added
isTypeDeclaration()
,isBuiltinType()
,isClassKeyword()
- used PhpStorm Language attribute (#277)
Types::isSingle()
->isSimple()
Component Model
v3.0.3
17. 1. 2023
- composer: allows nette/utils 4.0
- constants are PascalCase
Application
v3.1.9
17. 1. 2023
Application
v3.1.10
17. 1. 2023
Di
v3.1.1
17. 1. 2023
- better exception messages
- Container: added typehint object
- composer: accepts nette/utils & robot-loader 4.0
- removed
Adapter::dump()
interface method
Di
v3.0.15
17. 1. 2023
v4.0.0
13. 1. 2023
- requires PHP 8.0
- SmtpMailer & DkimSigner constructor: $options changed to parameters (BC break)
- SendmailMailer: uses CRLF for message
- SendmailMailer: 'From' is passed as cmd argument [Closes #78]
- constants are PascalCase
- deprecated magic properties (BC break)
Bootstrap
v3.2.0
13. 1. 2023
- requires PHP 8.0
- PhpExtension: simplification, uses only ini_set
Caching
v3.2.0
13. 1. 2023
- requires PHP 8.0
- added $dependencies as a Cache::load() 3rd parameter
Caching
v3.2.1
13. 1. 2023
- requires PHP 8.0
- added $dependencies as a Cache::load() 3rd parameter
- Latte: runtime helpers moved to Runtime class
Caching
v3.2.2
13. 1. 2023
- requires PHP 8.0
- added $dependencies as a Cache::load() 3rd parameter
- Latte: runtime helpers moved to Runtime class
Neon
v3.4.0
13. 1. 2023
- requires PHP 8.0
- removed deprecated syntax
on/off
&\x**
(BC break)
Robot Loader
v4.0.0
9. 1. 2023
- requires PHP 8.0
- renamed getCacheKey() -> generateCacheKey() (BC break)
- removed support for netterobots.txt (BC break)
Forms
v3.1.9
9. 1. 2023
- FormNNameNode: $form is created before tag itself #291
- latte: fixed parsing of {input} & {label} arguments
- Latte: better error message when form is missing
- Latte: {inputError ...} should have argument
getUnsafeValues()
renamed togetUntrustedValues()
Forms
v3.1.10
9. 1. 2023
- FormNNameNode: $form is created before tag itself #291
- latte: fixed parsing of {input} & {label} arguments
- Latte: better error message when form is missing
- Latte: {inputError ...} should have argument
getUnsafeValues()
renamed togetUntrustedValues()
- supports nette/utils 4
Latte
v3.0.5
28. 12. 2022
- added TracyExtension
- added
{exitIf}
#287 - Node:
getIterator()
must exists (BC break) - improved error messages for reserved keywords
- safeUrl accepts HtmlStringable
- fixed caching issue after 38039d8
- Content type 'text' uses escaping
- escapeXml() treats HtmlStringable as XML #322
- Linter: prints filenames during progress
- Parser: fixed support for dash in n:attributes
- more accurate checking of {breakIf} {continueIf} {skipIf} parent nodes
- renamed SkipNode -> JumpNode, InRangeNode to InNode (BC break)
- TagParser::tryConsumeModifier() renamed to tryConsumeTokenBeforeUnquotedString()
Finder
v3.0.0
14. 12. 2022
The library has been moved to the nette/utils
Finder
v2.6.0
14. 12. 2022
- Countable is deprecated (BC break)
- extension method are deprecated (BC break)
Robot Loader
v3.4.2
14. 12. 2022
- refactoring
- support for PHP 8.2
Bootstrap
v3.1.4
14. 12. 2022
- PhpExtension: supports dynamic parameters
- Configurator: added
generateContainerKey()
- Configurator::createContainer: added $initialize parameter
- constants are PascalCase
Safe Stream
v3.0.0
12. 12. 2022
- requires PHP 8.0
- constants are PascalCase
- removed old protocol safe://
- renamed Nette\Utils\SafeStream -> Nette\SafeStream\Wrapper
Safe Stream
v2.5.1
12. 12. 2022
supports PHP 8.2
Di
v3.1.0
5. 12. 2022
Changes:
- supports PascalCase constants in configuration
- Resolver: non-optional autowired parameters trigger notice that value is required [Closes #271]
- constants are PascalCase
- NeonAdapter: automatically escapes @
- Compiler: constants are evaluated immediately"
Deprecations:
- deprecated options 'parameters', 'dynamic', 'class' in configuration
- Three ... dots are deprecated in configuration
- Loader::save() is deprecated
- annotations
@return
are deprecated - PhpExtension & ConstantsExtension are deprecated (have been moved to nette/bootstrap)
Application
v3.1.8
27. 11. 2022
- support for PHP 8.2
Control::templatePrepareFilters()
silently deprecatedComponent::getParameter()
$default is silently deprecated
Http
v3.2.0
27. 11. 2022
Changes:
- RequestFactory: removed HTTP authentication credential from Url to prevent leak it (#211 #215)
- constants are PascalCase
New features:
- Request: added getBasicCredentials()
- Url, UrlImmutable: added getDefaultPort()
- RequestFactory::getHeaders() recreates Authorization header
- support for full_path upload (#207 #212)
- HttpExtension: dynamic options cookiePath, cookieDomain, cookieSecure (#216)
Deprecations:
- IRequest::getRemoteHost() is silently deprecated (#218)
- SessionSection: magic accessors & ArrayAccess are silently deprecated
Http
v3.2.1
27. 11. 2022
BC break:
$httpRequest->getUrl()->getUser() + getPassword()
// changed to
[$user, $pass] = $httpRequest->getBasicCredentials();
New features:
- Request: added getBasicCredentials()
- Url, UrlImmutable: added getDefaultPort()
- RequestFactory::getHeaders() recreates Authorization header
- support for full_path upload (#207 #212)
- HttpExtension: dynamic options cookiePath, cookieDomain, cookieSecure (#216)
- constants are PascalCase
Deprecations:
- IRequest::getRemoteHost() is silently deprecated (#218)
- SessionSection: magic accessors & ArrayAccess are silently deprecated
- Session::getIterator() is deprecated
Database
v3.1.6
18. 11. 2022
- support for PHP 8.2
- ConnectionPanel: detecting source without filesystem check
- used #[\SensitiveParameter] to mark sensitive parameters
- cs
Bootstrap
v3.1.3
18. 11. 2022
- support for PHP 8.2
- cs
Forms
v3.1.8
18. 11. 2022
- support for PHP 8.2
Form::initialize()
sets 'secure' flag nette/http#217- BaseControl,
ControlGroup::getOption()
parameter $default is silently deprecated - cs
Http
v3.1.7
18. 11. 2022
- support for PHP 8.2
Request::getReferer()
is deprecated #210- cs
v3.1.9
18. 11. 2022
- support for PHP 8.2
- private constants are PascalCase
- cs
Schema
v1.2.3
18. 11. 2022
- support for PHP 8.2
- cs
Tracy
v2.9.5
18. 11. 2022
- support for PHP 8.2
- tableSort: sort using a natural order algorithm (#547)
- BlueScreen: scroll to top when visible
- BlueScreen: fixed initialization issues, added
globalInit()
- BlueScreen: toggler is visibile in quirks mode
Latte
v3.0.4
4. 11. 2022
- TemplateLexer: fixed tag parsing & double syntax
- removed Engine::$probe
Extension::beforeRender()
changed signature (BC break!!)Extension::beforeRender()
is called just before the template is rendered- Engine, Template: provides are stored in stdClass
Latte
v2.11.6
4. 11. 2022
- support for PHP 8.2
- Blueprint: fixed compatibility with PhpGenerator v4
Di
v3.0.14
2. 11. 2022
Caching
v3.1.4
18. 10. 2022
Security
v3.1.6
12. 10. 2022
- CookieStorage: getState returns the previously set ID #67
- CookieStorage: fixed SameSite attribute
SessionStorage::setExpiration()
does not overwrite data in the session- SimpleAuthenticator: refactoring, added
verifyPassword()
- strict type fix
- coding style
Finder
v2.5.4
12. 10. 2022
- improved phpDoc
- variadics accepts named parameters
Php Generator
v4.0.4
6. 10. 2022
- added support for PHP 8.2 features: DNF types, constants in traits, readonly classes, Type::True
- Type: constants are PascalCase
- Extractor: keeps the first comment in the method #119
- Printer: allow customizing comment formatting through protected printDocComment (#118)
Helpers::formatDocComment()
added option $forceMultiLine- Factory: object class contains path from root namespace (#117)
- Extractor: Fixed extracting enum method body #115 (#116)
Php Generator
v4.0.5
6. 10. 2022
- added support for PHP 8.2 features: DNF types, constants in traits, readonly classes, Type::True
- Type: constants are PascalCase
- Extractor: keeps the first comment in the method #119
- Printer: allow customizing comment formatting through protected printDocComment (#118)
Helpers::formatDocComment()
added option $forceMultiLine- Factory: object class contains path from root namespace (#117)
- Extractor: Fixed extracting enum method body #115 (#116)
- PhpNamespace: better use-statements sorting behavior
Php Generator
v3.6.9
6. 10. 2022
Utils
v3.2.8
12. 9. 2022
- support for PHP 8.2
- tests: deprecated GD changed to PNG
Image::clone()
uses PNG format because GD2 is disabled since libgd 2.3.3- Image::detectTypeFromFile & detectTypeFromString returns width & height
- Image: added
extensionToType()
- private constants are PascalCase
- ObjectHelpers: fixed parsing static @methods #278
Latte
v3.0.3
12. 9. 2022
- support for PHP 8.2
- Blueprint: fixed compatibility with PhpGenerator v4
- TemplateLexer: fixed unterminated tags handling
- improved error messages
- 'on line 1' is printed in exception messages
Php Generator
v4.0.3
12. 9. 2022
- support for PHP 8.2
- Dumper::dumpObject() refactoring
- Printer: added $linesBetweenUseTypes (#114)
Php Generator
v3.6.8
12. 9. 2022
- support for PHP 8.2
- Extractor: added support for Readonly promoted parameters (#111)
Tester
v2.4.3
29. 8. 2022
- PHP 8.2 Support
- CloverXMLGenerator: reports file name is case of parse error
Assert::exception()
prints stack of unexpected exception
Tracy
v2.9.4
19. 7. 2022
Php Generator
v4.0.2
21. 6. 2022
- Printer: added $bracesOnNextLine #112
- Extractor: added support for Readonly promoted parameters (#111)
- Printer: refactoring
- Dumper: supports
__serialize()
- Dumper,
Helpers::formatDocComment()
,Printer::printFunction()
& etc normalizes whitespace - Printer: always prints trailing comma #106
- TraitType: traits cannot have constants
Latte
v3.0.2
15. 6. 2022
- improved {syntax} and n:syntax handling
- TemplateLexer: added $openDelimiter & $closeDelimiter, removed
setDelimiters()
(BC break) - Parser: undefinedsafe nodes parsed as composition of nodes (BC break)
- Parser: joined normal & nullsafe nodes for MethodCall & PropertyFetch (BC break)
- Parser: separate nodes for -call and -callable, ie
foo()
vs foo(...) (BC break) EncapsedStringNode::print()
fixed- Parser: added support for HEREDOC/NOWDOC
- TranslatorExtension: {translate} is generator
Application
v3.1.7
1. 6. 2022
- {link} disables URL checking
- TranslatorExtension moved to Latte (BC break)
Latte
v3.0.1
1. 6. 2022
- some fixes
- added TranslatorExtension, reverts "translate moved to nette/application"
- {_var} and {translate} can translate values during compile time
- {translate} accepts parameters
- SafeUrl is not used for attribute parts
- Fixed {first} inside n:foreach #298
Engine::isExpired()
checks filemtime of extensions- Linter: accepts file name or mask
- Linter: initalization moved to class
- Linter: prints summary
- ParametersNode & DefineNode parses parameters as ParameterNode[] with full type
Tracy
v2.9.3
30. 5. 2022
- bluescreen.css: resets
<body>
display & overflow - reset.css: increased specificity
- bar.js: options can be set after script is loaded #535
- some fixes
Latte
v2.11.4
30. 5. 2022
- Notice: deprecated use of ';'
- Notice: variable
$iterations
is deprecated
Latte
v3.0.0
17. 5. 2022
Brand new completely rewritten parser and compiler. Parses to AST nodes and then compiles to PHP.
Forms
v3.1.7
17. 5. 2022
- support for Latte 3
- FormMacros: optimized code
Form::addProtection()
fixed error "Argument 3 must be of the type string or null, int given"- coding style
- Runtime: fixed method name
- improved Latte examples
Caching
v3.1.3
17. 5. 2022
- support for Latte 3
- coding style
Application
v3.1.6
17. 5. 2022
- support for Latte 3
- added tag {translate}
- {_var} and {translate} can translate values during compile time
- RoutingPanel:
withPath()
fix II.
Latte
v2.11.3
8. 5. 2022
SecurityPolicy::allowMacros()
is deprecated, useallowTags()
- Notice: Engine::addFilter(null, ...) is deprecated, use
addFilterLoader()
PhpWriter::formatWord()
accepts PascalCase class constants- Notice: missing
</script>
or</style>
- Case sensitive filter |checkUrl
- Linter: add class Latte\Tools\Linter #286
- BlueScreenPanel: fixed compatibility with Tracy 2.9
Tracy
v2.9.2
27. 4. 2022
- added support for Generator & Fiber
- BlueScreen: added column highlighting
- Logs exception if the Content-Length header prevents the Bar from being displayed #255
- Unlock session file before close #540
- better detection of HTML mode
- BlueScreen: closes
</code>
- Dumper: disabled HASH disables "see above/see below"
DeferredContent::sendAssets()
uses Content-Length to prevent further output- Helpers: improved color detection
- Describer: $maxDepth returned to value 7
- css tweaks, resets property 'display'
tracy-fibers.mp4
Latte
v2.11.2
20. 4. 2022
- improved and fixed error message
- linter: added option --debug
- linter: added line for notices
- Revert "Tag name is [a-z][\w-]+"
Routing
v3.0.3
16. 4. 2022
Latte
v2.11.1
7. 4. 2022
- Case sensitive filters: notice when case does not match
- Notice: Filter |noescape should be placed at the very end in modifier
- sandbox: operator new is forbidden in {var} & {parameters}
- Notice: Change {include "inc"} to {include file "inc"} for clarity
- Notice: expressions like {block foo-$var} should be put in double quotes
- n-ifcontent on empty element in deprecated
Template::getParameter()
is deprecated- added {translate} as pair replacement for {_}
Http
v3.1.6
2. 4. 2022
- added
Request::getOrigin()
- RequestFactory: support for PHP built-in web server nette-examples/user-authentication#3
- coding style
Tester
v2.4.2
24. 3. 2022
- interrupt signal is converted to InterruptException and handled by CliTester
Dumper::dumpException()
added option to change output file name via AssertException::$outputName- Environment: improved color detection
- Dumper: improved encoding of strings, added colors
- improved coding style
Database
v3.1.5
10. 3. 2022
- SqlTranslator: convert BackedEnum to scalar (thanks @milo)
normalizeRow()
don't return small float as string #289- drivers: updated
getForeignKeys()
#281 ConnectionPanel::initialize()
replacesHelpers::initializeTracy()
- DatabaseExtension: creates service '.explorer' as alias to '.context'
- PgSqlDriver: support for partitioned tables (#286)
- PgSqlDriver:
getColumns()
for materialized view too - coding style
Php Generator
v4.0.1
10. 3. 2022
Php Generator
v3.6.7
10. 3. 2022
Di
v3.0.13
10. 3. 2022
Neon
v3.3.3
10. 3. 2022
- Encoder: uses more readable single quote strings
Node::getSubNodes()
changed to IteratorAggregate generator,- Traverser: added DontTraverseChildren & StopTraversal, $enter and $leave callbacks
- Node: added $startLine & $endLine
- Node: startPos & endPos renamed to startTokenPos & endTokenPos
- cs, constants are PascalCase
Latte
v2.11.0
22. 2. 2022
This version is for easy transition to the upcoming Latte 3. It notes all deprecated things that will be removed in the next version.
- throws exception when template contains control characters
- removed support for deprecated optional chaing expressions like
$foo->prop?
or$foo->call()?
- empty closing tag {/} is deprecated
- Colons as argument separator in modifiers are deprecated, ie replace
{$foo|filter:1:2:3}
with{$foo|filter:1, 2, 3}
- Auto-empty is deprecated (it affects
{label}
, must be written as{label /}
or pair{label}...{/label}
- Filters::escapeJS: invalid UTF-8 is replaced with Unicode Replacement Character U+FFFD (instead of throwing exception)
- Template: removed old accumulators $_l, $_g (deprecated in 2.4, BC break)
- Tag name cannot start with ?
- n:tag- & n:inner- is deprecated on void elements
- deprecated n:inner-snippet
- {includeblock} is deprecated
- Auto-empty is deprecated
- allow use of text/plain for script tag (#282)
Latte
v2.10.9
22. 2. 2022
- added & improved tests
- Compiler: checks macro is not in quotes in JS even with |noescape
- Engine: in sandboxed mode is policy mandatory
- CompileException: added line number
- Revert "TokenIterator: fixes, sync with nette/tokenizer"
implode()
with 2 arguments- output buffering uses try/finally
PhpHelpers::reformatCode()
places elseif/catch/finally after }PhpHelpers::reformatCode()
refactoring $next{try}
and{else}
are not replaced
Php Generator
v4.0.0
20. 2. 2022
This release takes advantage of all the new features of PHP 8 and cleans up some issues in the API.
- uses PHP 8 typehints & property typehints
- Dumper: prints comma after last argument
Stricter behaviour:
- ClassType::add*() throws exception when method/property/etc already exists
- PhpNamespace::add*() throws exception when class/function already exists
Changes:
- ClassType::addTrait() returns new class TraitUse instead of
$this
- ClassType::getTraits() returns TraitUse[] instead of string[]
- Method: body is always string, even for interfaces
- ClassType::setConstants() and setTraits() accepts array of Constant resp TraitUse objects only
Deprecations:
- deprecated magic properties (BC break)
ClassType::withBodiesFrom()
replaced withfrom(..., withBodies: true)
GlobalFunction::withBodyFrom()
replaced withfrom(..., withBody: true)
- ClassType::from() & Factory::fromClassReflection(): removed parameter $materializeTraits
Php Generator
v3.6.6
20. 2. 2022
- Extractor: preserves the first comment in the file #100
- PhpNamespace: added
removeClass()
&removeFunction()
- coding style
Tracy
v2.9.1
15. 2. 2022
- reset.css uses custom tag
<tracy-div>
to reduce specificity below class specificity - BlueScreen: is wrapped in
<tracy-div>
, uses CSS reset instead of disabling stylesheets and all classes are prefixed with 'tracy-' #533 dump()
is wrapped in<tracy-div>
to use CSS reset- Dumper: default $maxDepth increased to 15
- Debugger, TracyExtension: added $maxItems and option 'maxItems' #531
- Debugger:
enable()
callsdispatch()
always - Bluescreen: sticky footer
- Dumper: bold class names
- Debugger: is_dir can trigger warning #527
- TracyExtension: $editor accepts null
Tracy
v2.7.9
15. 2. 2022
- Debugger: don't render bar after dispatching assets
- bluescreen.css: fixed flash of black text
- Compatibility with psr/log ^2.0 and ^3.0 (#508)
- BlueScreen: used scrubber for HTTP response headers (#513)
- BlueScreen: used scrubber for HTTP headers (#498)
- Revert "Bluescreen: added length limit for exception message (#383)" for $title
Utils
v3.2.7
24. 1. 2022
- SmartObject: supports property deprecation
- Image: added support for AVIF
- Image: distinguishes between fatal errors and warnings
- Validators: isNumeric support string number '1.' (#276)
- Json: accepts native JSON_* constants #275
Arrays::isList()
usesarray_is_list()
is PHP 8.1
Deprecated properties are written as @property-deprecated
, no standard here exists. PhpStorm and static analysis tools do not see them, which is the intention.
Latte
v2.10.8
4. 1. 2022
This is a security release.
- complex expressions in strings are prohibited in sandbox mode
Latte
v2.9.6
4. 1. 2022
This is a security release. Branch 2.9 is no longer supported
- complex expressions in strings are prohibited in sandbox mode
- cs
Latte
v2.8.8
4. 1. 2022
- complex expressions in strings are prohibited in sandbox mode
- cs
Safe Stream
v2.5.0
3. 1. 2022
- Revert "SafeStream: reimplemented to provide real atomicity"
- simplified implementation only using locks
Application
v3.1.5
21. 12. 2021
- ApplicationExtension: support for creating presenters via Tracy
- RoutingPanel: supports withPath(...)
- Revert "
Component::link()
& etc uses variadic parameter" #298 - improved coding standard
Latte
v2.10.7
21. 12. 2021
- BlueScreenPanel: added source mapping & files creating in Tracy 2.9
- Filters: better error message for deprecated
strftime()
- improved coding standard
Tracy
v2.9.0
21. 12. 2021
- BlueScreen redesign:
- new callstack
- added tabs to Environment & HTTP
- added tabs with Latte template (source mapping)
- works without session
- TracyExtension: allow to specify error level for scream and strictMode, improve supported error level expressions
- Debugger: allow to specify error severity in $scream
- big refactoring
- Debugger::errorHandler() always returns false to fill-in error_get_last(), 'display_errors' disabled
- Debugger::dispatch() is not starting session automatically
- BlueScreen: creates new file with content
tracy.latte.mp4
Tracy
v2.8.10
21. 12. 2021
- bar.js: fixed manual refreshing via 'X-Tracy-Ajax': Tracy.
getAjaxHeader()
- Debugger: don't render bar after dispatching assets or in CLI
- bluescreen.css: fixed flash of black text
- improved coding style
Di
v3.0.12
14. 12. 2021
Resolver::resolveEntityType()
ignores return types 'object' & 'mixed' #274Resolver::autowireArgument()
uses named arguments to skip optional parameters in PHP 8- Resolver: forbidden to use extra parameter after optional (for forward compatibility) (BC break)
Resolver::autowireArguments()
improved support for variadics- Resolver: refactoring of
autowireArguments()
- ServicesExtension: improved parameter merging method
- DependencyChecker: do not serialize object parameters #273
- PhpGenerator: do not format the statement twice or incorrectly
- improved exception messages
- improved coding style
- ServiceDefinition: added
setCreator()
&getCreator()
, aliases forsetFactory()
&getFactory()
Finder
v2.5.3
12. 12. 2021
- add @implements (#14)
Latte
v2.10.6
26. 11. 2021
This is a security release.
Latte
v2.9.5
26. 11. 2021
This is a security release. Branch 2.9 is no longer supported
- Parser: removes all control characters from template [Closes #279]
- PhpWriter::removeCommentsPass() replaces comment with space to prevent unwanted result
- isNext() a isPrev() called with SIGNIFICANT
Latte
v2.8.7
26. 11. 2021
This is a security release. Branch 2.8 is no longer supported
- Parser: removes all control characters from template [Closes #279]
- PhpWriter::removeCommentsPass() replaces comment with space to prevent unwanted result
- isNext() a isPrev() called with SIGNIFICANT
Neon
v3.3.2
25. 11. 2021
- ArrayNode::$indentation usage fixed #63
- ArrayNode split to BlockArrayNode & InlineArrayNode
- InlineArrayNode: added property $bracket
- fixed tests
Bootstrap
v3.1.2
24. 11. 2021
- support for PHP 8.1
Caching
v3.1.2
24. 11. 2021
support for PHP 8.1
Database
v3.1.4
24. 11. 2021
- support for PHP 8.1
- Fixed aggregations when group by and having conditions are used (#284)
queryArgs()
&ResultSet::getConnection()
are silently deprecated
v3.1.8
24. 11. 2021
- support for PHP 8.1
- Message::getPriority return type fix (#87)
Php Generator
v3.6.5
24. 11. 2021
Tracy
v2.8.9
24. 11. 2021
Helpers::editorLink()
improved file name truncation- Bridge: compatibility with new Latte & Neon
- BlueScreen: added output buffer status
- BlueScreen: added info about sent headers
- BlueScreen: warning about last muted error
Utils
v3.2.6
24. 11. 2021
- FileSystem: messages use normalized paths (#250)
Strings::indexOf()
fixed empty $haystack and negative $nth #271- Strings: improved things around flags
- Callback::unwrap can return non-callable #270
- used @return never
- added
Helpers::clamp()
Validators::isPhpIdentifier()
: Value is always string. (#268)Reflection::expandClassName()
recognizes 'parent'- added
Reflection::isClassKeyword()
,Type::isClassKeyword()
Forms
v3.1.6
10. 11. 2021
- compatibility: fixed interfaces
- added DataClassGenerator & tag {formClassPrint}
- LatteRenderer: do not send cookie
- Latte generator moved from Rutime to new class LatteRenderer
- Latte Blueprint: used code highlighting
Neon
v3.3.1
9. 11. 2021
- added Neon linter
- added
Neon::decodeFile()
Neon::decode()
no longer removes BOM (BC break)Neon::encode()
$flags replaced with parameters- Neon, Encoder: added $indentation
- Traverser: can return different nodes
Tracy
v2.8.8
8. 11. 2021
- TracyExtension: added option 'emailSnooze' #515
- unified detection of CLI mode #516
Helpers::encodeString()
prints special unicode characters as \u{...}- added option Dumper::HASH
- Debugger: added FireLogger to preload #514
- BlueScreen: used scrubber for HTTP response headers (#513)
- Compatibility with psr/log ^2.0 and ^3.0 (#508)
- BlueScreen: don't create empty 'Variables'
Latte
v2.10.5
27. 10. 2021
- added Latte linter
- Filters: compatibility with JS binding II.
- {ifset block, block} fixed
- // comment and # comment are forbidden inside tags
- Blueprint: used syntax highlighter
Template::getParameters()
skips $_l $_g
Latte
v2.9.4
27. 10. 2021
- Blueprint: fixed compatibility with PhpGenerator 3.6.2
- Filters: compatibility with JS binding II.
- // comment and # comment are forbidden inside tags
Latte
v2.8.6
27. 10. 2021
- Blueprint: fixed compatibility with PhpGenerator 3.6.2
- Filters: compatibility with JS binding II.
- // comment and # comment are forbidden inside tags
- {capture} creates Html object only in HTML-TEXT context
- {_translate} & {capture} passes full content-type to FilterInfo
- {block|filter} passes full content-type to FilterInfo
Latte
v2.7.4
27. 10. 2021
- Blueprint: fixed compatibility with PhpGenerator 3.6.2
- Filters: compatibility with JS binding II.
- // comment and # comment are forbidden inside tags
Latte
v2.6.4
27. 10. 2021
- Filters: compatibility with JS binding II.
- // comment and # comment are forbidden inside tags
Latte
v2.5.7
27. 10. 2021
- Filters: compatibility with JS binding II.
- // comment and # comment are forbidden inside tags
Php Generator
v3.6.4
26. 10. 2021
- PhpNamespace::simplifyName() fixed relative path evaluation [Closes #94]
Di
v3.0.11
26. 10. 2021
- The _ are removed using Neon visitor #264
- requires neon/neon 3.3
- ServiceDefinition: type checking removed, because methods have a type defined
- InjectExtension: warns on non-public, static or readonly properties
- FactoryDefinition: fixed notice #266
- Partially reverts "improved phpDoc, used generics (#261)" #263
- Revert "
Resolver::autowireArguments()
throws an exception when combining a named and positional parameter" #265
Security
v3.1.5
19. 10. 2021
- SessionStorage: used new sessionSection API to not start the session unless needed
Neon
v3.3.0
19. 10. 2021
- completely rewritten parser
- generates AST
- added Traverser
- encoder uses AST
Schema
v1.2.2
15. 10. 2021
- supports nette/utils 2.5
Component Model
v3.0.2
7. 10. 2021
- support for PHP 8.1
Forms
v3.1.5
6. 10. 2021
- {formPrint} calls
fireRenderEvents()
- Container::getValues($obj) mapping to PHP 8 constructor
- BaseControl: added
addFilter()
- refactoring
- Container: catches infinite loop in
getValue()
#277 - netteForms: improved netteFormsModal CSS for problematic browsers
- netteForms: visible doc comment
- improved error messages
- Button: preserves prototype when caption is null #276
- Revert "added FormFactory & DI service"
Application
v3.1.4
6. 10. 2021
- support for PHP 8.1
- Presenter: support for @deprecated in presenters, action & signals
Presenter::run()
saves global state onsendRequest()
Presenter::canonicalize()
uses variadicsComponent::link()
& etc uses variadic parameter- UIRuntime: improved {templatePrint}
- phpstorm.meta: added exitPoint Component::error (#293)
- Presenter: Add return never typehint. (#291) (#290)
Latte
v2.10.4
2. 10. 2021
- support for PHP 8.1
- Blueprint: skips $_l $_g
- BlockMacros: removed unnecesary $ʟ_nm (after f88777b)
- BlockMacros: filters are not allowed in {include parent}
- BlockMacros: fixed {include this} in {block}
- LattePanel: removed dependency on Nette #274
- PhpWriter::quotingPass supports 'default =>' syntax #267
- Filters: flipepd string/array tests
- CoreMacros: Arguments are not allowed in n:ifcontent
Di
v3.0.10
29. 9. 2021
- added _ as alias for ... in config
- FactoryDefinition: added support for syntax
$params
in definition - added 'create' as alias for 'factory'
Resolver::autowireArguments()
throws an exception when combining a named and positional parameter- DefinitionSchema: better exception on empty definition
FactoryDefinition::resolveType()
checks for type compatibilityResolver::completeException()
truncates but does not remove the class name- Unified type validation using
Helper::ensureClassType()
- replaced use of
Reflection::getReturnTypes()
etc - uses nette/utils 3.1.6
- improved phpDoc, used generics (#261)
Php Generator
v3.6.2
24. 9. 2021
- Printer: added property $wrapLength #55 #56
getType()
,getReturnType()
: added option $asObject that returns Nette\Utils\Type- Factory: constant values are tagged for resolving
- Resolving of names in body & literals #85
- "use Trait" can have comments #90
- added TraitUse, represents use-statement
PhpNamespace::simplifyType()
supports generics like Foo<A, B>
PhpNamespace::unresolveName()
renamed tosimplifyName()
Helpers::unindent()
fixed when level = 0Dumper::format()
placeholder ? must not be followed by \w- Dumper: added $indentation
- Dumper: refactoring
- Printer: refactoring, added property $dumper
- Printer: refactoring, added property $namespace
- Revert "Dumper: dumps Closure as PHP code" (BC break)
PhpNamespace::addUse()
added validation- checks reserved class names
- added validator for types
- added Property and Parameter validation
- improved validation error messages
- Escapes */ in comments
Utils
v3.2.4
19. 9. 2021
- support for PHP 8.1
- added Type
- Type, Reflection: supports intersection types
Reflection::getReturnType()
&Type::fromReflection()
return tentative type in PHP 8.1- Reflection::getUseStatements supports enums
- Reflection: added 'never' built-in type
- Reflection:
getReturnTypes()
,getParameterTypes()
,getPropertyTypes()
are deprecated - improved phpDoc, used generics
- added
ArrayList::from()
Utils
v3.2.5
19. 9. 2021
- support for PHP 8.1
- added Type
- Type, Reflection: supports intersection types
Reflection::getReturnType()
&Type::fromReflection()
return tentative type in PHP 8.1- Reflection::getUseStatements supports enums
- Reflection: added 'never' built-in type
- Reflection:
getReturnTypes()
,getParameterTypes()
,getPropertyTypes()
are deprecated - improved phpDoc, used generics
- added
ArrayList::from()
Utils
v3.1.5
19. 9. 2021
- added Type
- improved phpDoc, used generics
- Strings::replace: default replacement is empty string #241
- Reflection:
getReturnTypes()
,getParameterTypes()
,getPropertyTypes()
are deprecated
Php Generator
v3.6.1
17. 9. 2021
Http
v3.1.3
17. 9. 2021
- SessionExtension: option 'autoStart=smart' behaves differently and starts session when it is needed (BC break)
- SessionExtension: added values 'always' & 'never' for option 'autoStart'
- Session: option 'autoStart' controls auto start on reading or writing (BC break)
- Session: added
autoStart()
to prevent session files from being created when the session id is spoofed - SessionSection: added methods
set()
,get()
,remove()
- Session: refactoring
- Session: cleaning is done in __destruct
- Session: don't send session cookie twice
- Session: don't regenerate ID in readAndClose mode
- Session: added events $onStart & $onBeforeWrite
- Session: fixed condition in
clean()
Http
v3.1.4
17. 9. 2021
- SessionSection:
remove()
is not writing operation - SessionExtension: added values 'always' & 'never' for option 'autoStart'
- Session: option 'autoStart' controls auto start on reading or writing (BC break)
- Session: added
autoStart()
to prevent session files from being created when the session id is spoofed - SessionSection: added methods
set()
,get()
,remove()
- Session: refactoring
- Session: cleaning is done in __destruct
- Session: don't send session cookie twice
- Session: don't regenerate ID in readAndClose mode
- Session: added events $onStart & $onBeforeWrite
- Session: fixed condition in
clean()
Http
v3.1.5
17. 9. 2021
- SessionExtension: added values 'always' & 'never' for option 'autoStart'
- Session: option 'autoStart' controls auto start on reading or writing (BC break)
- Session: added
autoStart()
to prevent session files from being created when the session id is spoofed - SessionSection:
remove()
is not writing operation - SessionSection: added methods
set()
,get()
,remove()
- Session: refactoring
- Session: cleaning is done in __destruct
- Session: don't send session cookie twice
- Session: don't regenerate ID in readAndClose mode
- Session: added events $onStart & $onBeforeWrite
- Session: fixed condition in
clean()
Http
v3.0.7
17. 9. 2021
- SessionExtension: default is autoStart = false to avoid creating new session files if the session_id is spoofed (BC break)
- SessionSection: added methods
set()
,get()
,remove()
- Session: don't send session cookie twice
- Session: don't regenerate ID in readAndClose mode
- Session: fixed condition in
clean()
Security
v3.0.6
25. 8. 2021
Security
v3.1.4
25. 8. 2021
- support for PHP 8.1
User::setExpiration()
second argument accept also bool $clearIdentity- User: added consts LOGOUT_MANUAL & LOGOUT_INACTIVITY
- fixed compatibility with Symfony DebugClassLoader
- compatibility: improved code hinting
Robot Loader
v3.4.1
25. 8. 2021
- support for PHP 8.1
- added support for PHP 8.1 enum #23
Http
v3.1.2
25. 8. 2021
Http
v3.0.6
25. 8. 2021
- HttpExtension: added option 'disableNetteCookie' #205
- Session: fixed option 'readAndClose' #206
- Session: fixed condition in
destroy()
(#204) - RequestFactory: urlFilters replaces only double // to single
- RequestFactory: strips trailing . from host
- Helpers: nette-samesite is resent at each request
- IResponse: added constants SAME_SITE_*
- ScriptUrl: Fix class extendability (#187) (#188)
Forms
v3.1.4
25. 8. 2021
Di
v3.0.9
25. 8. 2021
- support for PHP 8.1
- improved error messages
- added support for enums in config file
- support for intersection type
- Revert "uses nette/utils 3.2" to maintain compatibility with PHP 7.1
Php Generator
v3.6.0
25. 8. 2021
- support for PHP 8.1
- added support for enums
- added support for intersection types foo&bar
- added support for final constants
- added support for readonly properties
- added 'never' built-in type
- Literal: accepts parameters
- Dumper: can dump static Closure
- ClassType: setInterface() & setTrait() replaced with interface() & trait() factories
- requires PHP 7.2
Tester
v2.4.1
24. 8. 2021
- support for PHP 8.1
TestCase:prepareTestData()
: check that every data provider item is array #431- added Assert::$expandPatterns to disable patterns expansion
- TestHandler: mark tests with empty data provider as failed/skipped
- template.phtml: uses native directory separator
Tracy
v2.8.7
16. 8. 2021
- supports PHP 8.1
- solves the circular reference of previous exceptions #499
- BlueScreen: used scrubber for HTTP headers (#498)
- Debugger: improved error in CLI
class_exists()
it won't trigger autoloading because it may not work #497- Debugger: updated list of preloaded classes
- Debugger: render code snipet in CLI on error (#494)(#490)
- BlueScreen: fixes displaying "\r\n" and "\t" in exception's message #492
- BlueScreen: fixed header when message is empty (after aff47f2)
- Dumper: support for enums
- added Debugger::$keysToHide
Utils
v3.2.3
16. 8. 2021
Php Generator
v3.5.4
5. 7. 2021
- Dumper: dumps Closure as PHP code
- type '?xyz' sets nullable flag
- Printer: prints
fn()
without space
v3.1.7
2. 6. 2021
Tracy
v2.8.5
2. 6. 2021
Application
v3.1.3
2. 6. 2021
- UIMacros: supports {control|noescape}
- LatteExtension: inject interface to be more compatible (#288)
- LatteExtension: fixed debug panel for custom templates
- LatteExtension: changed UI\TemplateFactory type to ApplicationLatte\TemplateFactory (#283)
- Component: persistent parameters does not have to be initialized #286
Safe Stream
v2.4.2
2. 6. 2021
- fixed fopen mode #10
Database
v3.1.3
31. 5. 2021
Tracy
v2.8.4
27. 4. 2021
- Dumper: $maxDepth & $maxItems = 0 means no limit
- Dumper: scrubber checks also non-string keys (#473)
- Debugger: apply editor mapping for browser from CLI (#477)
Helpers::improveException()
ignores Nette\MemberAccessException #479- bluescreen: removed unused 'object' from callstack #480
- dumper: fixed first line indentation #475
- Bluescreen: Add selection color (#471)
BlueScreen::formatMessage()
don't highlight \n- BlueScreen: previous exception messages are formatted
- open-editor.js: added Visual Studio Code/VS Codium (#464)
- Bar: fixed [redirect|ajax] css #463
Tracy
v2.7.8
27. 4. 2021
Helpers::improveException()
ignores Nette\MemberAccessException #479- Debugger: apply editor mapping for browser from CLI (#477)
- Helpers: workaround for PHP 8.0.0 bug #80564
- Helpers:
xdebug_get_function_stack()
may trigger warning - bluescreen: removed unused 'object' from callstack #480
- js: prevents double initialization
Database
v3.1.2
22. 4. 2021
- Connection, Explorer:
beginTransaction()
,commit()
&rollBack()
calls are forbidden intransaction()
- Connection,
Explorer::transaction()
call can be nested - Connection,
Explorer::transaction()
: pass self as a callback argument - Revert "MySqlDriver driver uses subqueries (#265)"
- SqlPreprocessor: fixed handling 'IN (?)' #273
- fixed compatibility with Symfony DebugClassLoader #272
- improved phpDoc
- readme: updated badge
Helpers::initializeTracy()
replacescreateDebugPanel()
- compatibility: improved code hinting
Robot Loader
v3.4.0
7. 3. 2021
- Saves cache only once
- stores list of empty PHP files
- uses realpath() for added directories
- refactoring
Robot Loader
v3.3.2
6. 3. 2021
- fixed buggy behavior after 788ab3e
Forms
v3.1.3
4. 3. 2021
Form::getValues()
fixed when in validation scope is container- fixed compatibility with Symfony DebugClassLoader
Utils
v3.2.2
3. 3. 2021
Di
v3.0.8
2. 3. 2021
- Resolver: handles nullable or default union|types
- ContainerPanel: better sorting for human eyes
- ContainerPanel: shows names of anonymous services
- uses nette/utils 3.2
Tester
v2.4.0
1. 3. 2021
- requires PHP 7.2
- TestCase: added method skip() for skipping tests [Closes #379]
- DataProvider::load() may return empty data set (BC break)
- TestHandler: initiateTestCase() caching (#378)
- TestCase: list all possible TestCase class dependencies (#378)
- TestCase: list methods in format 'Method:testName' (#378)
- CliTester: option --log replaced by -o log (#329)
- CliTester: option -o is repeatable and accepts file name parameter (#329)
- CommandLine: added NORMALIZER (#329)
- Test: measure run time duration (#426)
- Asssert: add hasKey and hasNotKey assertions (#427)
- code coverage: improved coverage report template (#422)
Neon
v3.2.2
28. 2. 2021
- uses mb_string when iconv is not available
- improved PHP doc
v3.1.6
24. 2. 2021
Php Generator
v3.5.3
24. 2. 2021
Latte
v2.9.3
24. 2. 2021
- {capture} creates Html object only in HTML-TEXT context
- {_translate} & {capture} passes full content-type to FilterInfo
- {block|filter} passes full content-type to FilterInfo
Policy::createSafePolicy()
added new function- Filters: escapes JS binding
{{ }}
- allows {else} in {first}, {last}, {sep} #247
- BlockMacros: removed empty line after {define} #251
- {embed}: reimplemented, creates new block layers dynamically, uses stack
Latte
v2.7.3
24. 2. 2021
- {capture} creates Html object only in HTML-TEXT context
- {_translate} & {capture} passes full content-type to FilterInfo
- {block|filter} passes full content-type to FilterInfo
- Filters: escapes JS binding
{{ }}
(Release 2.7 is no longer supported)
Latte
v2.6.3
24. 2. 2021
- {capture} creates Html object only in HTML-TEXT context
- {_translate} & {capture} passes full content-type to FilterInfo
- {block|filter} passes full content-type to FilterInfo
- Filters: escapes JS binding
{{ }}
(Release 2.6 is no longer supported)
Latte
v2.5.6
24. 2. 2021
- {capture} creates Html object only in HTML-TEXT context
- {_translate} & {capture} passes full content-type to FilterInfo
- {block|filter} passes full content-type to FilterInfo
- Filters: escapes JS binding
{{ }}
(Release 2.5 is no longer supported)
Latte
v2.10.2
24. 2. 2021
- utilization of function inlining
- |replace improved, accepts associative array as $search
- |sort accepts callback
- |sort maintains index association
- added filters & functions: even(), odd(), divisibleBy(), first(), last(), |join, |slice, |round, |floor, |ceil, |explode, |split, |random, |spaceless
- filter |query accepts with string
- Filters: escapes JS binding
{{ }}
- improved detection of unexpected assignments {include $var = ...} [Closes #258]
- added more comments /* line */
Latte
v2.10.3
22. 2. 2021
- {embed}: outer variables are promoted inside {block}
- {embed}: reimplemented, creates new block layers dynamically, uses stack
Policy::createSafePolicy()
added new filters and tags- Filters: |sort accepts only Closure for security reasons
Template::render()
restores output buffer #260- LattePanel: added option to disable parameters dumping #259
- {capture} creates Html object only in HTML-TEXT context (BC break)
- {_translate} & {capture} passes full content-type to FilterInfo (BC break)
- {block|filter} passes full content-type to FilterInfo (BC break)
Forms
v3.1.2
10. 2. 2021
Application
v3.1.2
8. 2. 2021
- Presenter: try to find Template file for each action (#277)
- Component: Throw exception in case of signal method in Component or Presenter is private #263
- Presenter, Control:
formatTemplateClass()
refactoring - Presenter: non-final
createRequest()
#262 - RoutingPanel: displays one-way flags #274
- LatteExtension: fix undefined property
Form::disableSameSiteProtection()
replaced withallowCrossOrigin()
- UIMacros: added /* line */ comment
- improved phpDoc
- composer: accepts routing 3.1
Routing
v3.0.2
6. 2. 2021
- added RouteList::getFlags()
Forms
v3.1.1
4. 2. 2021
- phpDoc: fixed event type hints [Closes #265]
- Revert "Form::onValidate - values are passed only when form is valid"
- Latte: added more comments /* line */
- FormMacros: internal variables are prefixed $ʟ_
Tester
v2.3.5
2. 2. 2021
- Environment::loadData(): --dataprovider arg is exact key, not query (BC break) [Closes #428]
- CliTester: added missing newline (#429)
- PhpInterpreter: enables register_argc_argv for info.php
- Assert::contains() & notContains() check needle type
- fix Assert::type() failure error when expected $type is object (#425)
- CodeCoverage: support Xdebug 3 (#424)
Robot Loader
v3.0.5
2. 2. 2021
compatible with PHP 8.0
Robot Loader
v2.4.5
2. 2. 2021
compatible with PHP 8.0
Tracy
v2.8.3
31. 1. 2021
Http
v3.1.1
27. 1. 2021
Latte
v2.10.1
26. 1. 2021
Application
v3.0.8
25. 1. 2021
- PresenterFactory: removed case mismatch checks because may work incorrectly
- MicroPresenter: accepts any callable objects
- ComponentReflection: type 'NULL' replaced with pseudotype 'scalar'
- added support for union types in arguments and persistent parameters
- ComponentReflection: supports type 'mixed'
- Form::
disableSameSiteProtection()
replaced withallowCrossOrigin()
- ApplicationExtension: fixed scanDir merging
For the details you can have a look at the diff.
Application
v3.1.1
25. 1. 2021
- Component::
createComponent()
warns on non-presenter components nette/forms#147 - LatteExtension: option 'xhtml' is deprecated
- LatteExtension: initializes Latte Panel, added option 'debugger'
- TemplateFactory::
createTemplate()
returns Nette\Bridges\ApplicationLatte (BC break) - Control::flashMessage: allow HtmlStringable as a message
- UIMacros: {control} can be used in HTML attribute nette/latte#250
For the details you can have a look at the diff.
Latte
v2.10.0
25. 1. 2021
- added {iterateWhile}
- added {trace}
- added Tracy bridge
- added filter |query
- added PHP attributes Latte\Attributes\TemplateFunction & TemplateFilter
- added n:tag [Closes #248]
- implemented {embed block}
- added short array syntax [key: value]
- Engine: added addFilterLoader(), replacement for addFilter(null)
- warnings converted to exceptions (BC break)
- added phpDoc comments to block methods
- PhpWriter: added placeholder %node.line
Tracy
v2.8.2
21. 1. 2021
- dumper: prevent escaped sequences from being copied #458
- Renderer: ini_set may be disabled #457
- toggle.css: new graphic and animated caret
- dumper: more conservative expanding of collapsed structures
- bluescreen: bold class/method/function
- bluescreen: improved listing of variadics arguments
- BlueScreen: whole vendor is not added to collapsePaths, only tracy/ nette/ latte/
- Debugger::$maxDepth changed to 7 (#456)
- Debugger::
dump()
fixed return mode in CLI - bar.css: synced with dumper.css
- bluescreen: added REQUEST_METHOD
For the details you can have a look at the diff.
Schema
v1.2.0
21. 1. 2021
Structure::skipDefaults()
allow to skip defaults per structureAnyOf()
must not be empty- added
AnyOf::firstIsDefault()
- Ability to define scheme for the key
Expert::arrayOf($stringType, $keyType)
Php Generator
v3.5.2
19. 1. 2021
Forms
v3.1.0
19. 1. 2021
- requires PHP 7.2
Features
- Form: POST form checks Http\Request::isSameSite() as CSRF protection
- Guess first parameter for event by type hint (#219)
- Container::getValues($obj) to hydrate object
Changes
- Form::getValues() triggers warning when form is not valid
- Form::getValues() returns only controls in scope (BC break)
- Form::onValidate - values are passed only when form is valid
- Validator Form::URL autocompletes https:// instead of https:// (BC break)
- Validator::validateEqual returns false if control value is empty array (BC break) [Closes #257]
- Validator::formatMessage() added validator name to error message (#263)
- breaks exporting rules to JS after non-static validator [Closes #259]
- FormMacros: removed deprecated $_form
- Container: addImage() renamed to addImageButton()
- Checkbox: getSeparatorPrototype() renamed to getContainerPrototype()
- removed deprecated stuff
Security
v3.1.3
18. 1. 2021
- Revert "SecurityExtension: 'roles' & 'resources' are deprecated"
- SessionStorage: Fix clearing identity in case of clearAuthentication(true). (#55)
- User: passes to authenticator all arguments
- User::
logout()
steps reorder - events: removed magic
- CookieStorage: added MIN_LENGTH for UID
- User::
inInRole()
works with object Role
For the details you can have a look at the diff.
Security
v3.1.0
13. 1. 2021
- requires PHP 7.2
- added UserStorage, successor for IUserStorage
- added IdentityHandler
- added Authenticator, successor for IAuthenticator
- added SimpleIdentity, successor for Identity
- removed I prefixes from IAuthorizator, IResource, IRole
- SecurityExtension: 'roles' & 'resources' are deprecated
- User: added method refreshStorage() to clear identity cache. (#46) (#50)
Database
v3.1.1
13. 1. 2021
Utils
v3.2.1
11. 1. 2021
- added Arrays::
first()
,last()
&contains()
- added Array::
invoke()
&invokeMethod()
- Arrays: some methods accepts iterable
- Strings::
toAscii()
fixed to correctly convert german umlauts (BC break) (#240) - Strings::replace: default replacement is empty string #241
For the details you can have a look at the diff.
Nette
v2.3.11
5. 1. 2021
security fix
Nette
v3.1.0
5. 1. 2021
requires PHP 7.2
Security
v3.1.2
3. 1. 2021
- requires PHP 7.2
- added UserStorage, successor for IUserStorage
- added IdentityHandler
- added Authenticator, successor for IAuthenticator
- added SimpleIdentity, successor for Identity
- removed I prefixes from IAuthorizator, IResource, IRole
- SecurityExtension: added section 'authentication'
- SecurityExtension: 'roles' & 'resources' are deprecated
- User: added method refreshStorage() to clear identity cache. (#46) (#50)
- added SessionStorage & CookieStorage (replaced Nette\Http\UserStorage)
Tracy
v2.8.1
1. 1. 2021
- Toggle: Alt-click to toggle all child nodes recursively
- Dumper: fixed string coloring in CLI
- Dumper: added guide lines for multiline strings [Closes #453]
- Dumper: color differentiation of quotation marks around strings
- Dumper: added togglers for multiline strings
- Dumper: indentation lines in arrays are visible when value is multiline strings
- BlueScreen: changed $maxDepth to 5, added $snapshot to keysToHide
- Dumper: keysToHide can contain class names, ie 'Class::$proName'
- Dumper: declaring class name passed to scrubber; also ignores special types
- Dumper: fixed displaying of too big integers in JS [Closes #454]
- Dumper: removed last \n from strings
- Dumper: render tab as 4 spaces
- Helpers: workaround for PHP 8.0.0 bug #80564
- Helpers: xdebug_get_function_stack() may trigger warning
- TracyExtension: added $keyToHide
- TracyExtension: fixed compatibility with nette/di < 3.0.3
Http
v3.1.0
31. 12. 2020
- requires PHP 7.2
- Response::setCookie() default $sameSite is 'Lax' (BC break)
- Response::setCookie() prevents an inappropriate combination of path and domain
- Response: deprecated $cookieHttpOnly
- Request::getFile() accepts array of keys and returns FileUpload|null (BC break)
- FileUpload::getImageSize() returns only [x, y] values (BC break)
- UrlImmutable: added withQueryParameter()
- Url: silently deprecated getBasePath(), getBaseUrl(), getRelativeUrl()
- UserStorage is deprecated by Nette\Bridges\SecurityHttp\SessionStorage
Session & Cookies
- Session: default sameSite is 'Lax' (BC break)
- SessionExtension: option session.cookieSecure is deprecated, http.cookieSecure is used (BC break)
- SessionExtension: checks that cookieSamesite is Lax|Strict|None (BC break)
- SessionSection: can read data when session is closed
- Session: deprecated getCookieParameters() triggers E_USER_DEPRECATED
- HttpExtension: added options cookiePath & cookieDomain
- HttpExtension: cookieSecure is by default 'auto' (BC break)
- cookie
nette-samesite
renamed to_nss
Bootstrap
v3.1.0
31. 12. 2020
- requires PHP 7.2
- renamed Nette\Configurator -> Nette\Bootstrap\Configurator
- added addStaticParameters(), alias for addParameters()
- Parameters passed to addParameters() are not %expanded% (BC break)
- added ConstantsExtension & PhpExtension (moved from nette/di)
Application
v3.1.0
31. 12. 2020
Features
- Template divided into hierarchy Template > DefaultTemplate
- DefaultTemplate: added default properites and @methods
- Template, DefaultTemplate: magic access via __get/__set replaced with object properties
- Control, Presenter::createTemplate() added parameter $class for custom creation of the Template
- Control, Presenter::createTemplate() tries to create custom Template according to naming convention
- Presenter::sendTemplate() added parameter $template
- Link: added isLinkCurrent() & getComponent() [Closes #229]
- UIMacros: support named arguments
{control x: 1}
- Control::flashMessage accepts custom flash object
- Template: passes the template to the latte instead of just parameters.
- UIMacros: overloaded macro {templatePrint}
Changes
- requires PHP 7.2
- RoutingExtension: creates service 'routes' only when routes are defined (BC break)
- RoutingExtension: removed option 'routeClass' (BC break)
- Presenter::getContext() & others trigger error message
- removed prefix I from interfaces (except for IPresenter & IPresenterLoader)
- ApplicationExtension: option 'scanFilter' changed to pattern, default is '*Presenter'
- ApplicationExtension: catchExceptions is always true on production mode (BC break)
- UIMacros: modifiers are deprecated in {control}
- Route, SimpleRouter: flags is deprecated
Di
v3.0.7
31. 12. 2020
- Compiler: triggers schema warnings
- uses nette/schema 1.1
- DecoratorExtension: throws exception if class not exists
Caching
v3.1.0
30. 12. 2020
- requires PHP 7.2
- Cache::save() with closure is deprecated (BC break)
- Cache::start() renamed to capture()
- removed prefix I from IStorage, IJournal, IBulkReader
Schema
v1.1.0
18. 12. 2020
- added Type::mergeDefaults() [Closes #13, Closes #24, Closes #28, Closes #31]
- added error codes
- ValidationException::getMessageObjects() returns array of Messages
- Allow options to be marked as deprecated [Closes #27]
- Structure: structure with required fields can be optional [Closes #17]
- Type: PREVENT_MERGING prevents merging with defaults [Closes #14, Closes nette/application#257, nette/di#229]
- 'option' changed to 'item' in error messages
Schema
v1.0.4
17. 12. 2020
Latte
v2.9.2
16. 12. 2020
- added {parameters}
- detects unexpected assignments {include $var = ...}
- PhpWriter::
quotingPass()
supports named arguments without parentheses - internal variables are prefixed $ʟ_
- Fixes variables promotion after ce2b118 comments in #178
- Defaults: better info when mbstring extension or nette/utils are missing #244
- SnippetDriver: dynamic snippets runtime check
For the details you can have a look at the diff.
Tracy
v2.7.7
16. 12. 2020
Latte
v2.8.4
16. 12. 2020
- internal variables are prefixed $ʟ_
- Compiler: improved code indentation
- BlockMacros: "extends check" skipped for nested blocks #227
- Template::
render()
removed dead code after 5972e72 - PhpHelpers::
reformatCode()
appends correctly semicolon after '${""}' - CoreMacros: fixed regexp
For the details you can have a look at the diff.
Tracy
v2.8.0
10. 12. 2020
requires PHP 7.2
Completely Redesigned Dumper
- added themes 'light' & 'dark'
- added background for light scheme
- in CLI outputs to STDOUT to bypass output buffering
- implemented Scrubber (#439)
- default maxDepth changed to 7
- improved dumping of PHP Incomplete Class, DOM, ArrayObject, closures
- shows uninitialized properties [Closes #448]
- added 'see below', 'see above'
- added tooltips about Ctrl-click
- redesigned source location link
📍 - clever way of displaying strings and escaped sequences, length is in tooltip in bytes or unicode characters
- strings are quoted in single quotes
- shows declaring class of private properties as tooltip
- added option to limit max items in array/objects
- added hover effect for guide lines
- changed '=>' to ':' as key separator for objects & resources
- distinguishes virtual property, resources are virtual
- shows 'pub' to distinguish between public and dynamic properties
- hash highlighting on mouseover
- dumps zval references
Other Improvements
- open-editor.sh: opening from Tracy in PHPStorm for Linux users (#447)
- install.cmd: workaround for Chrome >= 77
- Bar: sends content in UTF-8
- TracyExtension: configures Tracy only when is enabled
- Helpers::detectColors() supports https://no-color.org & sapi_windows_vt100_support
Latte
v2.5.5
1. 12. 2020
compatibility with PHP 8
Latte
v2.4.9
1. 12. 2020
compatibility with PHP 8
Database
v3.1.0
25. 11. 2020
- requires PHP 7.2
- SqlPreprocessor: support for IN ? and IN (?) [Closes #256]
- SqlPreprocessor::formatValue() rejects array unless they are explicitly allowed (possible BC break)
- Connection, Explorer: added transaction()
- MySqlDriver driver uses subqueries (#265)
- removed I from interface prefixes, ISupplementalDriver -> Driver
- renamed Nette\Database\Context -> Explorer
- deprecated interfaces IRow & IRowContainer
Di
v2.4.17
25. 11. 2020
compatible with PHP 8.0
Di
v3.0.6
25. 11. 2020
- added PHP 8 attribute Inject
- cooperation with union types
- Resolver::
completeException()
appends entity to exception message when type is not known - DependencyChecker: checks types of properties
- DependencyChecker: fixed compatibility with PHP 8 #247
- DIExtension: detects Tracy by presence of service @tracy\Bar #245
- InjectExtension: updated exception messages
For the details you can have a look at the diff.
Schema
v1.0.3
25. 11. 2020
- compatible with PHP 8
- Expect::
from()
supports union types - coding style
- tests: refactoring
For the details you can have a look at the diff.
Utils
v3.2.0
25. 11. 2020
- requires PHP 7.2
- Added Nette\Utils\Floats class for comparing floats (#221)
- Arrays: searchKey() silently renamed to getKeyOffset()
- Callback::closure() triggers deprecation notice
- Image: added detectTypeFromFile() and detectTypeFromString()
- Reflection::toString() appends () after function/method name
- Strings::toAscii - triggers E_USER_NOTICE when ext-intl is not present
- renamed Nette\Localization\ITranslator -> Translator, added class alias
- renamed Nette\Utils\IHtmlString -> Nette\HtmlStringable, added class alias
Utils
v3.1.4
25. 11. 2020
- Reflection: added
getReturnTypes()
,getParameterTypes()
andgetPropertyTypes()
- Reflection::
getReturnType()
,getParameterType()
andgetPropertyType()
throws exception on union types - Image::
fromString()
throws UnknownImageFileException when file type is unknown
For the details you can have a look at the diff.
Application
v2.4.17
24. 11. 2020
- compatible with PHP 8
- PresenterFactory: removed case mismatch checks because may work incorrectly
- strict type fix
- MicroPresenter: accepts any callable objects
For the details you can have a look at the diff.
Latte
v2.9.1
24. 11. 2020
- Compiler: improved code indentation
- BlockMacros: added {include file with blocks} as a successor to {includeblock} (#152)
- BlockMacros: combination of n:snippet & n:ifcontent is forbidden #243
- Revert "{snippetArea} requires parameter" #240
- BlockMacros: parameters in {define} can have default values
- BlockMacros: {define} accepts named parameters #184 #198
- BlockMacros: fixed variables visibility between blocks depend on block order, alternative solution #178"
- BlockMacros: supports expression as block/snippet name
- CoreMacros: supports expression in include/extends
- {embed} can contain {import}
- Only top-level {block} is auto-closed
- SecurityPolicy: added new tags & filters
- changed \RuntimeException to Latte\RuntimeException
- changed word 'modifier' --> 'filter' in exception messages
- Revert "Template imported via {import} can use {extends}"
- CoreMacros: {breakIf} and {continueIf} checks ancestors instead of parents #239
- Defaults: filter 'webalize' is optional and depends on nette/utils #238
- CoreMacros: modified use of temporary variables
- CoreMacros: fixed {var} in {switch} usage #237
- Compiler: tag name can contain dots, dashes and colons #236
- BlockMacros: removed checks if dynamic snippet is used in {snippet} or {snippetArea} #134
For the details you can have a look at the diff.
Caching
v3.0.2
16. 11. 2020
- compatible with PHP 8.0
- CacheMacro: wrapped in try ... finally
- OutputHelper: added
rollback()
- MemcachedStorage: muted warning
For the details you can have a look at the diff.
Latte
v2.9.0
16. 11. 2020
New Features
- possibility to
{include block from file}
- filter
|sort
,|clamp
& custom functionclamp()
- added
{ifchanged}
- added
{skipIf}
- added
{foreach} {else} {/foreach}
- added
{try} & {else} & {rollback}
- added
{embed file.latte}
- added local blocks
{block local name}
&{define local name}
{case 1, 2, 3}
accepts more than one option- syntax
{include block foo}
and{include file foo}
- syntax
{ifset block foo}
- syntax
{ifset #$blockName}
- added
$iterator->parent
, returns the iterator surrounding the current one - added
$iterator->counter0
, returns 0-indexed counter - implemented support for named arguments
- added null-coalescing-safe operator
??->
Improvements & Fixes
- template code: direct HTML changed to 'echo' statements
- BlockMacros: fixed variables visibility between blocks depend on block order [Closes #178]
- FilterExecutor::filterContent() converts HtmlStringable to text [Closes #215]
- Compiler: supports uppercases AND|OR|XOR [Closes #172]
- BlockMacros: big refactoring
- Template & BlockMacros: used new class Block, removed $blockQueue & $blockTypes
- Template: removed old accumulator $_b (deprecated in 2.4, BC break)
- added Defaults: default filters list moved here from FilterExecutor
- CoreMacros: replaced global queuened temporary variables with local ones
- BlockMacros: snippet driver wrapped in try ... finally
- Parser: fixed parsing {__()} [Closes #226]
- checks for valid macro/filter/function/block names
- macros validates arguments, modifiers, position (MacroNode::validate())
- {debugbreak} uses only xdebug
- changed word 'macro' --> 'tag' in exception messages
- CachingIterator: do not ask when not in valid state (#230)
- improved typehints
- PhpHelpers::reformatCode() appends correctly semicolon after '${""}'
Changes
- Colons as argument separators in modifiers are deprecated (BC break)
- optional chaining: operator ?-> in Latte behaves the same as in PHP (BC break)
- optional chaining: deprecated support for $var? and $obj?::$prop to be consistent with PHP 8 (BC break)
- internal variables are prefixed $__ and disallowed to be used
- Template: changed $contentType and $blocks to constants CONTENT_TYPE & BLOCKS
- Template & BlockMacros: moved snippets to own layer, removed '_' prefix
Database
v2.4.11
6. 11. 2020
compatible with PHP 8.0
Forms
v2.4.11
6. 11. 2020
compatible with PHP 8.0
Http
v2.4.12
6. 11. 2020
compatible with PHP 8.0
Robot Loader
v3.2.4
6. 11. 2020
compatibility with PHP 8.0
Robot Loader
v3.1.2
6. 11. 2020
- compatibility with PHP 8.0
For the details you can have a look at the diff.
Utils
v3.0.4
5. 11. 2020
Utils
v2.5.5
5. 11. 2020
Latte
v2.8.3
4. 11. 2020
Forms
v3.0.7
2. 11. 2020
- compatible with PHP 8.0
- examples: added Latte example
- netteForms: added parameter 'event' to
toggle()
- netteForms: parameter srcElement is passed to Nette.
toggle()
even during initialization (possible BC break) - netteForms: removed
hasOwnProperty()
check - netteForms: added variable Nette.invalidNumberMessage with error message #252
- netteForms: avoid checking of invalid number in nested
validateControl()
#252
For the details you can have a look at the diff.
Tester
v2.3.4
2. 11. 2020
- compatible with PHP 8.0
- Dumper: keep full data provider name in output files
- Show @dataProvider data set name in assertion error #293 #377
- Runner: fixed waiting for last async Job #415
- CloverXMLGenerator, DomQuery: checks for PHP extensions #401 #419
- FileMutator: fixes '
touch()
expects parameter 2 to be int, null given' #403 - @dataProvider file may return integer-indexed data #418
- Dumper: clickable links in PhpStorm terminal with plugin Awesome Console #313
- Environment: improved color detection
- Drop create-phar tool #276
For the details you can have a look at the diff.
Tracy
v2.7.6
2. 11. 2020
- compatible with PHP 8.0
- Bar: added info about JIT (#440)
- BlueScreen:
phpinfo()
returns text in CLI #444 - BlueScreen: Allow to hide environment section by default (#438)
- bluescreen.css: improved editor links color & background #443
- BlueScreen: unified listing of hidden keys #441
- Helpers::getSuggestion: item may be an int, type cast fix
- Debugger: workaround for PHP bug #80234
- TableSort: order can be specified by attribute data-order #442
- BlueScreen: fixed error when file not exists #428
- bar.js: fixed escaping
- Dumper: fixed strict type #422
For the details you can have a look at the diff.
Security
v3.0.5
2. 11. 2020
- compatible with PHP 8.0
- SecurityExtension: detects Tracy by presence of service
@Tracy\Bar
nette/di#245 - improved PHP doc
- Passwords:
hash()
: Password can not be empty. (#47)
For the details you can have a look at the diff.
Routing
v3.0.1
2. 11. 2020
- compatible with PHP 8.0
- utilization of function inlining
- added .phpstorm.meta.php
For the details you can have a look at the diff.
Http
v3.0.5
2. 11. 2020
- FileUpload: added
getImageFileExtension()
- FileUpload: added
getUntrustedName()
as alias forgetName()
- FileUpload::getSanitizedName: returns correct file extension for images
- FileUpload: fixed TypeError if
getimagesize()
returns false (#184) - FileUpload::getSanitizedName: Remove redundant minus before dot. (#179)
- FileUpload::getSanitizedName: returns 'unknown' instead of empty string
- Helpers::
initCookie()
sends cookie nette-samesite only if doesn't exist
For the details you can have a look at the diff.
Php Generator
v3.5.0
2. 11. 2020
Supports all new PHP 8 features!
- implemented support for PHP 8 attributes
- implemented support for PHP 8 union types
- implemented PHP 8 constructor property promotion
- Factory: supports attributes in PHP 8
- Dumper::format() syntax ...? now supports named parameters (possible BC break)
- Printer: prints trailing comma in parameter lists when PHP 8 syntax is used
- Factory: loads method bodies from traits
- PhpFile::addNamespace() accepts PhpNamespace object (#68)
v3.1.5
2. 11. 2020
- compatible with PHP 8.0
- MimePart::encodeSequence uses mime_encode for long strings
- MimePart: UTF8 in attachment filename is encoded #75
- MimePart:
encodeHeader()
->encodeSequence()
- Message::
createAttachment()
when content is provided, file name is not changed - Message::
createAttachment()
escapes " in filename - SmtpMailer: allowed login with blank password #74
For the details you can have a look at the diff.
Database
v3.0.7
2. 11. 2020
- compatible with PHP 8.0
- ConnectionPanel: added data-order to be sortable by time
- ConnectionPanel: Added performance colors (#258)
- DatabaseExtension: detects Tracy by presence of service
@Tracy\BlueScreen
nette/di#245 - ConnectionPanel: bypasses SqlPreprocessor for explain to avoid double processing #259
For the details you can have a look at the diff.
Application
v3.0.7
2. 11. 2020
- compatible with PHP 8.0
- added PHP 8 attributes
#[Persistent] & [CrossOrigin]#
- MicroPresenter: throws BadRequestException on invalid argument
- ApplicationExtension, RoutingExtension: detects Tracy by presence of service nette/di#245
For the details you can have a look at the diff.
Nette
v2.2.14
7. 10. 2020
security fix
Nette
v2.0.19
5. 10. 2020
security fix
Nette
v2.1.13
5. 10. 2020
security fix
Latte
v2.7.2
29. 9. 2020
Latte
v2.8.2
29. 9. 2020
Robot Loader
v3.3.1
15. 9. 2020
- compatibility with PHP 8.0
getRealPath()
can return false (in PHAR)
For the details you can have a look at the diff.
Finder
v2.5.2
27. 8. 2020
- composer: allows nette/utils ^3.0
For the details you can have a look at the diff.
Application
v3.0.6
25. 8. 2020
- Application: Micro:* presenter are not achievable
- MicroPresenter: parameter callback must be a Closure, removed support for __invoke
- RoutingPanel: fixed calling to undefined RouteList::
getModule()
#264 - LinkGenerator: added
withReferenceUrl()
- Presenter: added support for typehint 'object'
- RoutingPanel: improved visualisation of error
- RoutingPanel: fixed compatibility with new RouteList III.
For the details you can have a look at the diff.
Di
v3.0.5
13. 8. 2020
- added new internal functions
bool()
,int()
,float()
,string()
- added
Helpers::escape()
- fixed PHP 8.0 compatibility
- improved exception messages
For the details you can have a look at the diff.
Utils
v3.1.3
7. 8. 2020
- Arrays::
renameKey()
fixed incorrect replacement for existing new keys #230 - Arrays::
renameKey()
returns true if $oldKey was found - Arrays: added
toKey()
- improved PHP doc
- Reflection: fixed parseUseStatements for PHP 8 #229
- SmartObject: better support for $onEvent with typehint
- Image: added new PHP functions
- Strings: ICONV_IMPL can be quoted
- FileSystem: Added $mode to all exceptions.
- Image: compatibility with PHP 8.0
- Reflection: added PHP 8 type 'static'
- Reflection::
isBuiltinType()
added PHP 8 types mixed & false - Reflection::
getReturnType()
fixed for functions - SmartObject: removed return void
- tested on PHP 8
For the details you can have a look at the diff.
Tester
v2.3.3
3. 8. 2020
- Dumper: keep full data provider name in output files
- Show @dataProvider data set name in assertion error #293 #377
- Drop create-phar tool #276
- readme: added
with()
(#410) - Runner: fixed waiting for last async Job #415
- CloverXMLGenerator, DomQuery: checks for PHP extensions #401 #419
- FileMutator: fixes '
touch()
expects parameter 2 to be int, null given' #403 - @dataProvider file may return integer-indexed data #418
- Dumper: clickable links in PhpStorm terminal with plugin Awesome Console #313
- Environment: improved color detection, supports https://no-color.org/
For the details you can have a look at the diff.
v3.1.4
3. 8. 2020
- SmtpMailer: Fix for servers which sends 250-AUTH only through encrypted connections (#67)
- DkimSigner: removed testmode, added
getTime()
- Revert "SmtpMailer: Fix for servers which sends 250-AUTH only through encrypted connections (#67)" #71
- Revert "MimePart: line length limit changed to 500" #72
For the details you can have a look at the diff.
Neon
v3.2.1
31. 7. 2020
Robot Loader
v3.3.0
28. 7. 2020
- Loads and builds cache on demand
For the details you can have a look at the diff.
Forms
v3.0.6
16. 7. 2020
Neon
v3.2.0
13. 7. 2020
- now supports only UTF-8 mode and throws exception on invalid input (BC break)
- syntax \xAA is deprecated in favor of \uAAAA (BC break)
- Encoder: encodes multiline strings in """ format
v3.1.3
13. 7. 2020
Php Generator
v3.4.1
25. 6. 2020
- PHP-safe indentation replaced with Helpers::
unindent()
because requires too much memory - Factory: fix method bodies import #61 (#62)
- Factory::
extractBody()
replaces multi-line & HEREDOC strings with single-line - Printer: added $returnTypeColon #63
- Printer: added $linesBetweenProperties #60
- added support for PHP 8.0 types mixed, static, false, null
For the details you can have a look at the diff.
Database
v2.4.10
9. 6. 2020
Application
v2.4.15
9. 6. 2020
- class aliases are loaded on demand
- added .phpstorm.meta.php
- Template: prevents unserialization for security reasons
For the details you can have a look at the diff.
Forms
v3.0.5
6. 6. 2020
- CheckboxList: compact transmission mode in form name=val1,val2,val3
- CsrfProtection: auto-starts session before form is rendered #239
- Container: detects property type of mapped class
- Validator::
validateNumeric()
accepts unsigned integer #246 - Rules::
getIterator()
moves BLANK before FILLED #233 - Rules::
getToggleStates()
synced with netteForms.js toggleControl - netteForms: fixed
toggleControl()
, synced withvalidateControl()
- Rules::
validate()
$emptyOptional is always false in BLANK condition - Container::addHidden Allow any type so it works same as setDefaultValue (#245) BC break!
- Latte: prints {label/}
For the details you can have a look at the diff.
Security
v3.0.4
27. 5. 2020
Utils
v3.1.2
27. 5. 2020
Php Generator
v3.4.0
26. 5. 2020
- Factory: reads class constants with visibility & phpDoc
- Factory: added option to load methods a functions with bodies [Closes #59][Closes #4]
- implemented PHP-safe indentation
- Printer: one-line properties without comments are not separated using one empty line
- Printer: constants with comments are separated using one empty line
Bootstrap
v3.0.2
26. 5. 2020
- default parameters are escaped
- added modification time of composer to container cache key
For the details you can have a look at the diff.
Tracy
v2.7.5
17. 5. 2020
- bar: sends content in UTF-8
- bar.js: fetch checks Response (#420)
- bar: escapes
<!-- in <script>
#421 - Dumper: supports closed resource
- bar: fixed table sort after 193740e
- Toggle: detects mouse click vs drag
- Dumper: class names are selectable
- Debugger: disables zend.exception_ignore_args #415
- .phpstorm.meta: added exit point
- Revert "Info panel: Add server name by IP (#401)" #416 #417
For the details you can have a look at the diff.
Tracy
v2.6.8
17. 5. 2020
Tracy
v2.5.9
17. 5. 2020
Di
v3.0.4
15. 5. 2020
- Resolver: fixed self-dependency #240
- InjectExtension: chooses a more specific type #234
- SearchExtension: Exception when class is not autoloaded.
- DecoratorExtension: resolves definitions before uses its
findByType()
- Container: added
getByName()
as alias forgetService()
- Compiler: moved Search extension before Decorator (#197)
- Resolver: better exception message (#233)
- InjectExtension: maintains natural order of inject methods (BC break)
For the details you can have a look at the diff.
Latte
v2.8.1
12. 5. 2020
- Engine: implemented custom exception handler for {sandbox}
- renamed Latte\SecurityViolation -> SecurityViolationException (BC break!)
- Template: improved runtime method/property checking
- PhpWriter: variable variables $$ when policy is enabled
- PhpWriter: disabled underscored $_ when policy is enabled
- PhpWriter: improved exception when |noescape or |nocheck is not allowed
For the details you can have a look at the diff.
Component Model
v3.0.1
21. 4. 2020
- Container: component name may be number or null
- Container: added const NAME_REGEXP
- added .phpstorm.meta.php
- fixed bugs reported by PHPStan
For the details you can have a look at the diff.
Application
v3.0.5
20. 4. 2020
- UIMacros: fixed (expand) in {control) nette/latte#223
- .phpstorm.meta: added exit points
- PresenterFactoryCallback: fixed multiple services of type found #258
- RoutingPanel: display RouteList groups
- RoutingPanel: fixed compatibility with new RouteList II. #251 #253
- RoutingPanel: changed Application\Routers* classes to Nette\Routing*
- RoutingPanel: Better mask responsivity.
- Template: prevents unserialization for security reasons
For the details you can have a look at the diff.
Latte
v2.8.0
20. 4. 2020
- added macro {sandbox}
- implemented policy checking
- PhpWriter: disabled $this/break/case/catch/continue/... when policy is enabled
- PhpWriter: deprecated backtick operator
- PhpWriter: disabled _halt_compiler/declare/die/eval/exit/include/include_once/require/require_once in templates
- added {do} as alias for {php}
- Engine::loadTemplate() uses the same locking mechanism as RobotLoader
- templates: added typehints to generated methods & improved coding style
- {=...}, {php...}, {do...} must have arguments (BC break)
For the details you can have a look at the diff.
Forms
v3.0.4
20. 4. 2020
- FormMacros: added {formPrint $form}
- netteForms: added mime-type validation #173
- netteForms: image validator accepts image/webp
- SelectBox, MultiSelectBox: added
setOptionAttribute()
- Container::getValues('array') propagates arrays to inner containers only when mappedType is not set
- Validator::
validateInteger()
returns false when integer is too big - DefaultFormRenderer: options 'class' & 'id' are used for 'control' part when 'pair' part is empty
- DefaultFormRenderer: supports option 'nextTo' & style 'control .multi'
- renders correctly Nette\Utils\IHtmlString in
data-nette-rules
#243 getLabel()
removed return type void #241- FormsExtension: uses $initialization
For the details you can have a look at the diff.
Tracy
v2.6.7
11. 4. 2020
This is the last 2.6.x release.
- Revert "Dumper: changed detection of recursive arrays, marker changed to strict comparison"
- Logger & MailSender: replaced HTTP_HOST with SERVER_NAME #309
- TableSort: better support for thead #348
- Helpers::
guessClassFile()
fixed - BlueScreen::
highlightPhp()
removed part of code after__halt_compiler()
- BlueScreen: do not show Enviroment on 'Allowed memory size of *** bytes exhausted'
- some fixes
For the details you can have a look at the diff.
Tracy
v2.7.4
11. 4. 2020
- BlueScreen::
formatMessage()
clickable methods & files - BlueScreen::
highlightPhp()
removed part of code after__halt_compiler()
- Revert "Dumper: changed detection of recursive arrays, marker changed to strict comparison"
- Debugger::
exceptionHandler()
evaluates template in closure - Debugger::
exceptionHandler()
sends Content-Type only when needed - Logger & MailSender: replaced HTTP_HOST with SERVER_NAME #309
- TableSort: better support for thead #348
- Helpers::
guessClassFile()
fixed - BlueScreen: do not show Enviroment on 'Allowed memory size of *** bytes exhausted'
- BlueScreen: refactoring, added
formatMessage()
- TracyExtension: fixed config schema #409
- Dumper: quotes keys true|false|null
- Info panel: Better detection server IP and server name. (#406)
For the details you can have a look at the diff.
Latte
v2.7.1
1. 4. 2020
<script type="module">
is also javascript context (#220)- Engine::
getTemplateClass()
added functions to cache key - Engine: automatically registers methods annotated as
@function
&@filter
- FileLoader: private changed to protected #219
- PhpWriter: fixed combination of custom function & modifier
For the details you can have a look at the diff.
Http
v3.0.4
31. 3. 2020
v3.1.2
25. 3. 2020
Safe Stream
v2.4.1
16. 3. 2020
- PHP 7.4 compatibility
For the details you can have a look at the diff.
v3.1.1
10. 3. 2020
- class aliases are loaded on demand
- uses nette/utils 3.1
For the details you can have a look at the diff.
Latte
v2.7.0
9. 3. 2020
- added macros
{varPrint}
,{varType}
,{templatePrint}
,{templateType}
- added support for types in
{define block type $var}
- added support for types in
{var type $var}
and{default type $var}
- Filters: added
|batch
- optional chaining: added support for
$obj->$var?
and$obj::$var?
- Preserves spaces before and after
<div n:spaceless>
- deprecated syntax
{var xx}
and{var $xx => ...}
(BC break) - removed prefix I from ILoader, IHtmlString, ISnipperDriver, IMacro
Tester
v2.3.2
6. 3. 2020
Robot Loader
v3.2.3
6. 3. 2020
Neon
v3.1.2
4. 3. 2020
Neon
v3.0.1
4. 3. 2020
Tracy
v2.7.3
23. 2. 2020
- Info panel: Add server name by IP (#401)
- Bluescreen: opens link to new window (#400)
- TracyExtension: uses $initialization
- dumper.js: fixed detection of recursion
- BlueScreen: clickable classes in exception message
- bar.css: better hiding of panel icons
- TracyExtension: email accept array (#395)
- readme: synced with documentation
For the details you can have a look at the diff.
Latte
v2.6.2
23. 2. 2020
- Filters::escapeXml() & escapeIcal: C0 charactes are replaced with Unicode Replacement Character U+FFFD
- optional chaining: disabled for Class::$prop? & $$var?
- custom functions reimplemented
For the details you can have a look at the diff.
Robot Loader
v3.2.2
20. 2. 2020
Neon
v3.1.1
12. 2. 2020
Database
v3.0.6
9. 2. 2020
- Helpers: Fix
dumpSql()
for bool parameters (#251) - SqlPreprocessor: recoginzes (SELECT) UNION (SELECT) as parameteric command #248
- SqlPreprocessor: correctly escapes scalars when parameters are not used
- ConnectionPanel: uses capturing
- Revert "ConnectionPanel: params are useless for EXPLAIN"
- SqlPreprocessor: multi-insert accepts Row objects #247
- ResultSet: muted warnings
- Row: compatibility with operator ??
For the details you can have a look at the diff.
Php Generator
v3.3.4
9. 2. 2020
Utils
v3.1.1
9. 2. 2020
- Reflection::
getParameterDefaultValue()
supports parent::CONST nette/di#231 - improved phpDoc
- Image: added
typeToExtension()
&typeToMimeType()
- Reflection: ensures that
getType()
returns ReflectionNamedType - Json: missing @throws JsonException (#212)
- Image: added
imagecrop()
workaround because it loses transparency on ubuntu on Github Actions - DateTime::from(null) fixed #211
- Html::
htmlToText()
decodes ' - Strings::toAscii - simplified process when Transliterate is available
For the details you can have a look at the diff.
Application
v3.0.4
22. 1. 2020
- Presenter::
restoreRequest()
redirects on GET request - Template: added custom functions
isLinkCurrent()
andisModuleCurrent()
- Presenter: added
isModuleCurrent()
#240 (#243) - RoutingPanel: fixed compatibility with new RouteList
- uses latte 2.6
- class aliases are loaded on demand
For the details you can have a look at the diff.
Di
v3.0.3
20. 1. 2020
- CompilerExtension: added $initialization as replacement for modifying
initialize()
method - class aliases are loaded on demand #226
- Statement: can be used as dynamic parameter #228
- parameters: dynamic parameters are resolved
- parameters: statements are replaced with null in Container
- %parameters% resolves to all parameters
- Revert "parameters can contain statements #221"
- ContainerPanel: uses capturing
For the details you can have a look at the diff.
Php Generator
v3.3.3
20. 1. 2020
- ClassType: added new setter/getters for each type
- VisibilityAware: added new setter/getters for each visibility
- added Type
- added Literal as alias for PhpLiteral
- Dumper: dumped classes are fully qualified
- Dumper::
dumpArray()
hides keys only in non-associative arrays #51
For the details you can have a look at the diff.
Latte
v2.6.1
14. 1. 2020
Security
v3.0.3
14. 1. 2020
- User: identity and authenticated state are cached, UserStorage is not called repeatedly
- UserPanel: uses capturing
For the details you can have a look at the diff.
Schema
v1.0.2
6. 1. 2020
Application
v3.0.3
5. 1. 2020
- Template: added
addFunction()
for Latte 2.6 - RoutingPanel: uses capturing
- FileResponse: added some checks (#238)
- ComponentReflection: changed way how it detects built-in types #241
- ApplicationExtension: options scanDirs has higher priority than robotLoader
- ApplicationExtension: always creates directory for touch file (#237)
- Presenter:
injectPrimary()
params are required because $httpRequest is required. (#239) - updated .phpstorm.meta.php
- uses nette/utils 3.1
- fixed bugs reported by PHPStan
For the details you can have a look at the diff.
Latte
v2.6.0
3. 1. 2020
- added custom functions via
$latte->addFunction()
- Added optional chaining
$var?->prop?->elem[1]?->call()?->item
- Short ternary operator now requires braces around array (for future optional chaining) (BC break)
- PhpWriter: short ternary checks if value exists
- CachingIterator: fixed IteratorAggregate -> Iterator conversion
- BlockMacros: check when dynamic snippet is combined with id attribute [Closes nette/application#242]
- BlockMacros: added $snippetAttribute for custom HTML attribute with snippet id [Closes nette/application#242]
- removed latte.php
Utils
v3.1.0
3. 1. 2020
- Strings::toAscii transliterates я/ю as ya/yu [Closes #203]
- Helpers: added capture(), falseToNull(), getLastError(), getSuggestion()
- FileSystem: added joinPaths(), normalizePath()
- Strings, Validator: throw exception on invalid regexp patterns / malformed input
- Strings: throw exception on malformed UTF-8 in webalize() and to… (#205)
- Html: added helper htmlToText()
- Html: added fromText() & fromHtml(), toText() & toHtml()
- Image: added support for BMP
Tracy
v2.6.6
2. 1. 2020
This is the last 2.6.x release.
- Debugger: fixed compatibility with PHP 7.4
- Debugger::errorHandler correctly fill-in
error_get_last()
when $logSeverity is used - dumper.js: fixed detection of recursion
- bar.js: stopImmediatePropagation after opening/closing tab
- FireLogger: added space in header
- content.phtml: fixed headers in format 'A:B'
For the details you can have a look at the diff.
Forms
v3.0.3
2. 1. 2020
- HiddenField: added
setNullable()
andaddFilter()
#171 - HiddenField: value is not converted to string #152
- UploadControl: automatically sets MAX_FILE_SIZE #238
- UploadControl:
addRule()
checks upload_max_filesize limit - Rules: added
removeRule()
- Form: added
setHtmlAttribute()
- BaseControl: supports setHtmlAttribute('name')
- Validator::
formatMessage()
label is translated using form translator (#237) - added .phpstorm.meta.php
- readme: info about netteForms.js
For the details you can have a look at the diff.
Utils
v3.0.3
27. 12. 2019
Robot Loader
v3.2.1
27. 12. 2019
Neon
v3.1.0
27. 12. 2019
- requires PHP 7.1
- Literal cannot begin with a character
:
when it follows after'"
to improve JSON compatibility (syntax BC break) - Literal cannot begin with a character
-
or:
followed by=[{(
(syntax BC break) - Neon syntax: deprecated keywords
on
/off
(#41) - Nette syntax: literals can begins with
!
(#42) - removed neon.php
Di
v3.0.2
27. 12. 2019
- InjectExtension: accepts native type
- parameters can contain statements #221
- InjectExtension: scans resolved class #218
- SearchExtension: removes conflicting services before it starts to add them
- Resolver.
autowireArguments()
fixed counting optional args - Resolver::
autowireArguments()
refactoring, addedautowireArgument()
, Resolver|Container replaced with callback - ExtensionsExtension: better exception message #219
For the details you can have a look at the diff.
Database
v3.0.5
15. 12. 2019
Tracy
v2.7.2
15. 12. 2019
- Bar: added info [redirect|ajax] to panel headers
- bar.js: stopImmediatePropagation after opening/closing tab
- Debugger: fixed compatibility with PHP 7.4
- Debugger: implemented support for E_COMPILE_WARNING
- Debugger::errorHandler correctly fill-in
error_get_last()
when $logSeverity is used - refactoring, removed parameter $exit from
exceptionHandler()
- Debugger::
exceptionHandler()
when connection is aborted, log exception - FireLogger: added space in header
- content.phtml: fixed headers in format 'A:B'
- TracyExtension: editorMapping is null by default (#393)
- Safe output capturing via Helpers::
capture()
For the details you can have a look at the diff.
Php Generator
v3.3.0
20. 11. 2019
- supports PHP 7.4
- added support for PHP 7.4 typed properties
- added Printer::printArrowFunction() for new PHP 7.4 arrow functions
- added new class Dumper
- output better respects wrap-length #45 #47
- default wrap-length changed to 120
- added setType()/getType()/hasStrictTypes()/hasBracketedSyntax()/isReturnNullable() as future replacements for setTypeHint()/getTypeHint()/getStrictTypes()/getBracketedSyntax()/getReturnNullable()
Application
v2.4.14
19. 11. 2019
Caching
v3.0.1
19. 11. 2019
- supports PHP 7.4
For the details you can have a look at the diff.
Caching
v2.5.9
19. 11. 2019
- supports PHP 7.4
For the details you can have a look at the diff.
Database
v3.0.4
19. 11. 2019
Database
v3.0.3
19. 11. 2019
Database
v2.4.9
19. 11. 2019
Di
v2.4.16
19. 11. 2019
- supports PHP 7.4
- Helpers::
expand()
fixed expansion of dynamic parameters
For the details you can have a look at the diff.
Forms
v3.0.2
19. 11. 2019
Forms
v2.4.10
19. 11. 2019
Utils
v2.5.4
19. 11. 2019
- supports PHP 7.4
- throwing exceptions from
__toString()
is allowed since PHP 7.4 - LegacyObject: removed deprecation warning for extension methods
- added PhpStorm metadata for autocompletion
For the details you can have a look at the diff.
Tester
v2.3.1
19. 11. 2019
Tracy
v2.7.1
2. 11. 2019
Schema
v1.0.1
31. 10. 2019
Http
v3.0.3
31. 10. 2019
- HttpExtension: added support for 'http:' in CSP
- Session: prevents warning Cannot change session cookie parameters when session is active
- Url::
parseQuery()
accepts separator ; - IResponse: added REASON_PHRASES
- HttpExtension: 'proxy' can be string
For the details you can have a look at the diff.
Bootstrap
v3.0.1
22. 10. 2019
- Configurator: passes RobotLoader to ApplicationExtension nette/application#227
- Configurator::
detectDebugMode()
workaround for PHP bug #77722
For the details you can have a look at the diff.
Application
v3.0.2
21. 10. 2019
- Form: added
disableSameSiteProtection()
- Route: fixed bug for constant module & presenter #216
- BadRequestException: parent exception is Throwable (#236)
- Component, Form: added
getPresenterIfExists()
- Component, Form: deprecated
hasPresenter()
- throwing exceptions from
__toString()
is allowed since PHP 7.4 - Template: removed 'final' #235
- TemplateFactory: remove unused Loader (#232)
- ApplicationExtension: can use external RobotLoader #227
- added support for persistent parameters with property typehints in PHP 7.4 #230
- RoutingPanel: Add better panel responsivity (#225)
For the details you can have a look at the diff.
Security
v3.0.2
21. 10. 2019
Utils
v3.0.2
21. 10. 2019
- Image: fixed lost of alpha after
imagecrop()
#202 - Validators: accepts URL "https://example.com/?query" #190
- composer: added suggestion for tokenizer #187
- Json: added ESCAPE_UNICODE
- throwing exceptions from
__toString()
is allowed since PHP 7.4 - tested against PHP 7.4
- regexp: \z replaced with D modifier
- FileSystem: copy: Add binary safe parameter
- Strings: Optimalize
strlen()
for better performance. (#193)
For the details you can have a look at the diff.
Tracy
v2.7.0
24. 9. 2019
- Logger: added priority to the exception file name
- TracyExtension: added getConfigSchema()
- Dumper: hidden values are rendered with variable's type [Closes #380]
- InfoPanel: Add information about localhost IP
- Bluescreen: added length limit for exception message (#383)
- BlueScreen: removed source from footer
- Bluescreen: footer is always on bottom
- bar: replaced attribute 'rel' with 'data-tracy-action' for closing & open-to-window links
- tested against PHP 7.4
For the details you can have a look at the diff.
Tracy
v2.6.5
24. 9. 2019
- fixes for PHP 7.4
- Debugger: workaround for PHP bug #77722
- Bridge: Template line can be null. (#384)
- BlueScreen: keysToHide respected in title #381
- Bridge: Remove redundant
<pre>
and<div>
. - Debugger::
errorHandler()
argument $context can be null #379 - bar.css: fixed table width 100%
For the details you can have a look at the diff.
Latte
v2.5.3
24. 9. 2019
Finder
v2.5.1
13. 9. 2019
Tokenizer
v3.1.0
13. 9. 2019
- Revert "Stream: removed code that I don't know what is doing"
Tester
v2.3.0
11. 8. 2019
- watch mode: changed files are detected by filemtime
- added
Assert::notNull()
FileMutator
fixes- test result is printed when run as a standalone script
Di
v3.0.1
7. 8. 2019
- SearchExtension: ability to add factory definitions from interfaces with method
create()
(#200) - Revert "Container: deprecated support for dynamically added services (BC break)" #203
- ServiceDefinition: removed unnecessary $service variable #206
- Autowiring: bug fix & tests
- ExtensionsExtension: added extension type checking (#209)
- fixed bugs reported by PhpStan (#212)(#211)(#210)(#208)(#207)(#213)(#214)
- PHP 7.4 compatibility fixes
For the details you can have a look at the diff.
Latte
v2.5.2
16. 7. 2019
- FileLoader::
isExpired()
returns true when file doesn't exist #186 - BlockMacros: {define} accepts named parameters #184
- Engine: strict_types not working with no temp directory #191
- Engine::setTempDirectory accepts null
- Filters: removed string type hints from replace filter (#189)
For the details you can have a look at the diff.
Tracy
v2.6.4
16. 7. 2019
Application
v3.0.1
8. 7. 2019
- Presenter: added onRender event
- Component::
redirect()
removed $code from signature #220 #221 - Generates links using UrlImmutable::
withoutUserInfo()
(nette/http#160) - Application: fixed error conditions order
- added .phpstorm.meta.php
- Use phpstan callable format
For the details you can have a look at the diff.
Database
v3.0.2
8. 7. 2019
- ResultSet: added workaround for PDO bug #38546 (#231)
- SqlPreprocessor: generates IS NOT NULL (#226)
- Revert "Table: moved caching related functionality to separate classes (#185)"
- Structure::
getBelongsToReference()
return value fix - Selection: typefix for referencing table primary key
- ResultSet: only format strings as floats (#228)
- SqlBuilder: Fixed loading arguments for left join conditions (#224)
- Use phpstan callable format (#220)
For the details you can have a look at the diff.
Forms
v3.0.1
8. 7. 2019
- BaseControl::
getLabel()
IHtmlString are not translated (#225) - BaseControl::
translate()
ignores IHtmlString - DefaultFormRenderer: Fix GET Application\UI\Form (#222)
- DefaultFormRenderer: strict type fix (#220)
- Use phpstan callable definitions (#216)(#223)(#224)
- FormsExtension: uses configuration Schema
For the details you can have a look at the diff.
Security
v3.0.1
8. 7. 2019
Http
v3.0.2
8. 7. 2019
- Session: added read_and_close configuration (#156)
- RequestFactory: respect host set by trusted proxy (#162)
- RequestFactory: set user and password to Url (#161)
- UrlImmutable: added
withoutUserInfo()
- Url, UrlImmutable: includes "empty" hostname ('0') in the host URL (#159)(#158)
- added .phpstorm.meta.php
For the details you can have a look at the diff.
Php Generator
v3.2.3
5. 7. 2019
Tracy
v2.6.3
18. 6. 2019
- bar.css: resets #tracy-debug #364
- bar.css: resets initial values for width/height
- Helpers::
improveException()
do not improve already improved errors - Debugger: added $reservedMemorySize #272
- Debugger: Increase size of memory reserve for Debugger.
- PsrToTracyLoggerAdapter: changed the log message
- Dumper: fixed dumping empty array in snapshot #367
- BlueScreen: add support for escaping in highlighted title
- added .phpstorm.meta.php
- bluescreen: Fixed scollbar in long one-liners on Mac #363
For the details you can have a look at the diff.
v3.1.0
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: ...
v3.0.1
3. 6. 2019
Nette
v3.0.0
3. 4. 2019
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
andparameters
- 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
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
Tester
v2.2.0
11. 3. 2019
--watch
mode recovers from errors (e.g. missing file)- fixes in
FileMutator
(duringscandir()
or recursivemkdir()
) 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 to 7.4
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)
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 84ada18 (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!
- https://twitter.com/nettefw/status/1097235393567707136
- https://twitter.com/nettefw/status/1097235524585164800
- https://twitter.com/nettefw/status/1098009458335252481
- https://twitter.com/nettefw/status/1098076674191749120
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
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.
v2.4.6
26. 11. 2018
Application
v2.4.13
23. 11. 2018
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 callexit()
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 callexit()
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
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
Tracy
v2.4.17
13. 8. 2018
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
Php Generator
v3.0.5
9. 8. 2018
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 070309d - 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
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
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
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
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
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
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.
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 misusedsetClass()
For the details you can have a look at the diff.
Php Generator
v3.0.3
2. 4. 2018
Php Generator
v3.1.1
2. 4. 2018
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
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
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.
v2.4.4
6. 2. 2018
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
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 fordump()
&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
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
Di
v2.4.10
6. 9. 2017
- supports PHP up to 7.2
- added ServiceBuilder::
setType()
&getType()
as a future replacements forsetClass()
andgetClass()
- 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 assetText()
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
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
Bootstrap
v2.4.5
29. 8. 2017
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
Robot Loader
v3.0.2
20. 7. 2017
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
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 withcurrent()
andnext()
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
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
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.
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
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()
fromrenderPair()
which was caused by #145 (->form = NULL) (#150) - ControlGroup: added
remove()
andremoveOrphans()
#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
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
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 fromcreateRequest()
For the details you can have a look at the diff.
Application
v2.4.6
29. 5. 2017
Latte
v2.4.4
17. 5. 2017
Tracy
v2.4.7
11. 5. 2017
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 witheval()
For the details you can have a look at the diff.
Http
v2.4.5
17. 3. 2017
Http
v2.3.9
17. 3. 2017
Di
v2.3.14
17. 3. 2017
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.
v2.4.2
21. 2. 2017
Database
v2.3.11
21. 2. 2017
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 withcurrent()
andnext()
- 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()
usesquote()
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
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 b357b90
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
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 ofeval()
- bar.js: monkey patching
getResponseHeader()
&getAllResponseHeaders()
replaced withaddEventListener()
For the details you can have a look at the diff.
Utils
v2.4.4
11. 1. 2017
- added Reflection
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 ofsetCacheStorage()
- presence of cacheStorage is checked only in
register()
, not inrebuild()
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
Forms
v2.3.12
21. 12. 2016
Forms
v2.4.3
20. 12. 2016
- BaseControl::
setAttribute()
andsetType()
aliased tosetHtmlAttribute()
andsetHtmlType()
- 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
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
- UserStorage: removed BROWSER_CLOSED expiration reason nette/http#112
- @return self -> static
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
Di
v2.3.13
19. 12. 2016
Component Model
v2.2.5
19. 12. 2016
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
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
Caching
v2.4.7
18. 10. 2016
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
Utils
v2.4.1
30. 9. 2016
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
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()
anddispatch()
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
v2.4.1
31. 7. 2016
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
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
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 ofgetControl()
(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
FLOATautomatically 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 72127b1)
- 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 usesgetControlPart()
andgetLabelPart()
, 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
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()
andsaveState()
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()
andparseService()
renamed toloadDefinition()
andloadDefinitions()
(#112) - di.accessors are deprecated
- ServiceDefinition::
setImplementType()
andgetImplementType()
renamed tosetImplementMode()
&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.
v2.4.0
25. 6. 2016
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
Bootstrap
v2.4.0
17. 6. 2016
- requires PHP 5.6.0
- uses Nette\SmartObject & StaticClass
- Configurator: removed ReflectionExtension
- Configurator: extracted
loadContainer()
fromcreateContainer()
- 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()
optimizationComponent::__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
Php Generator
v2.4.0
17. 6. 2016
- requires PHP 5.6
- uses Nette\SmartObject & StaticClass
- deprecated
addDocument()
,setDocuments()
andgetDocuments()
and replaced withaddComment()
,setComment()
andgetComment()
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()
andgetComment()
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
- 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 fromNette\Object
: - added trait
Nette\StaticClass
- Html: renamed
add()
toaddHtml()
; addedaddText()
(#111) - Html: deprecated "expanded" attribute data
- Html: added attribute public accessor methods
- Image::
place()
preserves the alpha channel - Strings::
random()
renamed toRandom::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
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
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.4.0
3. 5. 2016
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)
v2.3.5
13. 4. 2016
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
Http
v2.3.6
1. 4. 2016
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
Utils
v2.3.8
1. 4. 2016
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
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
Caching
v2.3.5
22. 2. 2016
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
Forms
v2.3.8
19. 2. 2016
Di
v2.3.9
19. 2. 2016
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
- 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
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
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 #1539 #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 #1540
- netteForms: updated regexp for URL and email validation #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()
andlcg_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
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()
andlcg_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
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
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
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
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.
v2.3.4
30. 11. 2015
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 tosetUp()
nortearDown()
(BC break) #238 - TestCase: is not masking
setUp()
andtearDown()
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 typehintsPresenterComponentReflection::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 usepage()
) - 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
- 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 usepage()
)
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
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 typehintsPresenterComponentReflection::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.
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()
andlcg_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
Database
v2.3.5
23. 8. 2015
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
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
Database
v2.3.4
23. 8. 2015
- Helpers::
loadFromFile()
uses nativeexec()
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
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 nativeexec()
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 8818410
- 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
Di
v2.3.3
23. 8. 2015
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
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.