Release Notes
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.
Finder
v2.2.2
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Finder
v2.3.1
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Forms
v2.3.4
23. 8. 2015
- Helpers::createSelectBox: added parameter $selected
- ChoiceControl, MultiChoiceControl: added $checkAllowedValues #28
- ChoiceControl, MultiChoiceControl: renamed 'range' to 'set' in exception
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Forms
v2.3.3
23. 8. 2015
Forms
v2.3.2
23. 8. 2015
- netteForms.js: toggleControl() binds events on all inputs #75
- netteForms.js: fixed getValue for radio list #73 and multi select box
- FormMacros:
<label n:name></label>
is rendered without caption, fixes 6d16631 - Form::fireEvents() calls onError even after last onSuccess handler
- RadioList & CheckboxList: getControlPart() normalizes key type #76 #78
For the details you can have a look at the diff.
Forms
v2.3.1
23. 8. 2015
Forms
v2.2.7
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
- netteForms.js: fixed toggle in IE < 9
For the details you can have a look at the diff.
Forms
v2.2.6
23. 8. 2015
- netteForms.js: toggleControl() binds events on all inputs #75
- netteForms.js: fixed getValue for radio list #73 and multi select box
- Form::fireEvents() calls onError even after last onSuccess handler
- RadioList & CheckboxList: getControlPart() normalizes key type #76 #78
- netteForms.js: used form.elements.namedItem(…) instead of form.elements[…] #72
For the details you can have a look at the diff.
Forms
v2.2.5
23. 8. 2015
- netteForms.js: fixed bug in toggleControl from 8871974
- netteForms.js: Fixed "Uncaught TypeError: Cannot read property 'tagName' of undefined"
- netteForms.js: validator 'float' converts value to float, 'url' prepends 'https://' nette/nette#1430 nette/nette#1462
- netteForms.js: ignore fieldsets (and eventually other non-control elements) in form.elements
- netteForms.js: add webalize() support for ô ä ľ characters
- netteForms.js: fixed length validation on checkbox list with exactly 1 item #59
- netteForms.js: validator 'filled' for [] returns false
- netteForms.js: textarea is not trimmed
- DefaultFormRenderer: automatically sets setOption('rendered', TRUE)
- Helpers: fixed quirky htmlspecialchars in PHP 5.6
For the details you can have a look at the diff.
Http
v2.3.3
23. 8. 2015
- Session: session ID is not regenerated when not set
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Http
v2.3.2
23. 8. 2015
Http
v2.3.1
23. 8. 2015
- Url: fixed isEqual() for same param values & regular sorting on numbers
For the details you can have a look at the diff.
Http
v2.2.8
23. 8. 2015
Http
v2.2.7
23. 8. 2015
- Url: fixed isEqual() for same param values & regular sorting on numbers
For the details you can have a look at the diff.
Http
v2.2.6
23. 8. 2015
- HttpRequest: drops non-UTF8 strings, but control characters only removes
- Session: fetch session cookie from Http\IRequest
- Session: fix handling exceptions thrown from SessionHandlerInterface
- Session::configure() do not override setHandler #15 #18
- SessionPanel: fixed quirky htmlspecialchars in PHP 5.6
- Response: fixed quirky htmlspecialchars in PHP 5.6
- Url: fixed canonicalize()
For the details you can have a look at the diff.
Latte
v2.3.4
23. 8. 2015
Latte
v2.2.7
23. 8. 2015
- Filters::htmlAttributes: chars '<' in attributes are encoded in XHTML
For the details you can have a look at the diff.
Latte
v2.2.6
23. 8. 2015
- travis: migrating to container-based infrastructure
- BlockMacros: {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7
- improved coding style
For the details you can have a look at the diff.
v2.2.4
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Neon
v2.3.2
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
- Decoder: fixed support for hex numbers in PHP 7
For the details you can have a look at the diff.
Neon
v2.3.1
23. 8. 2015
Neon
v2.2.5
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Php Generator
v2.3.2
23. 8. 2015
- Method::from() added support for closures & global functions
- fixed inconsistencies between 'nullable string' and 'string' properties
- fixed content for properties $documents
- ClassType::__toString() refactoring
- Method, Parameter: added support for build-in types callable, self, parent
- Method, ClassType: better whitespace usage
For the details you can have a look at the diff.
Php Generator
v2.3.1
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Php Generator
v2.2.3
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Php Generator
v2.2.2
23. 8. 2015
- added Helpers::MAX_DEPTH
- phpDocs: new line after multiline docs removed
For the details you can have a look at the diff.
Reflection
v2.2.2
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Reflection
v2.3.1
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Robot Loader
v2.2.2
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Robot Loader
v2.3.1
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Safe Stream
v2.3.1
23. 8. 2015
- travis: migrating to container-based infrastructure
- typos
For the details you can have a look at the diff.
Safe Stream
v2.2.1
23. 8. 2015
- travis: migrating to container-based infrastructure
- typos
For the details you can have a look at the diff.
Security
v2.2.4
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Security
v2.3.1
23. 8. 2015
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Security
v2.2.3
23. 8. 2015
- Identity: fixed conversion of big ints nette/nette#1520
For the details you can have a look at the diff.
Tokenizer
v2.2.3
23. 8. 2015
- improved coding style
- travis: migrating to container-based infrastructure
For the details you can have a look at the diff.
Tracy
v2.2.8
23. 8. 2015
- bar.js: fixed dragging in Firefox when cursor leaves the browser window
- bar.css: added text-shadow reset
- travis: migrating to container-based infrastructure
- improved coding style
For the details you can have a look at the diff.
Tracy
v2.3.4
23. 8. 2015
Utils
v2.2.5
23. 8. 2015
- Image::place() fixed unexpected output with transparency image #56
- Image: better exception message [Closes #42]
- Strings::webalize() converts non-breaking space … ™ ® etc in glibc mode
- Validators::isUrl: backslashes in regexp escaped
- Validators::isUrl: underscored subdomain support added
- Strings::toAscii() removes \x80-\xFF chars
- Strings::toAscii() converts degree sign to ^
- Html: fixed quirky htmlspecialchars in PHP 5.6
For the details you can have a look at the diff.
Utils
v2.2.6
23. 8. 2015
- Strings::toAscii() uses //IGNORE
For the details you can have a look at the diff.
Utils
v2.2.7
23. 8. 2015
- Html: chars '<' in attributes are encoded in XHTML
- travis: migrating to container-based infrastructure
- Random: /dev/urandom is not used on Windows
- improved coding style
For the details you can have a look at the diff.
Utils
v2.3.1
23. 8. 2015
- Strings::toAscii() uses //IGNORE
For the details you can have a look at the diff.
Utils
v2.3.2
23. 8. 2015
- Strings: added after() and before() (thanks @icaine) [Closes #20]
- Arrays: added pick() - picks element from the array by key and return its value [Closes #54]
- Random: fixed generating zero-length string with mcrypt
- Image::fromString() undeprecated argument $format
For the details you can have a look at the diff.
Utils
v2.3.3
23. 8. 2015
- Callback::invokeSafe() removes function name from error message
- Callback::invokeSafe() workaround for HHVM bug facebook/hhvm#4625
- Random: /dev/urandom is not used on Windows
- improved coding style
- travis: migrating to container-based infrastructure
For the details you can have a look at the diff.
Utils
v2.3.4
23. 8. 2015
Nette
v2.2.11
23. 8. 2015
Nette Framework 2.2.11 has just been released.
- improved coding style
- Presenter: fixed signal in POST in ajax request
- Presenter: added test for initGlobalParameters
- netteForms.js: fixed toggle in IE < 9
- Html & Latte: chars '<' in attributes are encoded in XHTML
- Random: /dev/urandom is not used on Windows
- Tracy: fixed dragging in Firefox when cursor leaves the browser window
- travis: migrating to container-based infrastructure
For the details you can have a look at the diffs: application, bootstrap, caching, di, finder, forms, mail, neon, php-generator, reflection, robot-loader, security, utils, latte, tracy.
Nette
v2.1.11
15. 8. 2015
- Html: chars '<' in attributes are encoded in XHTML
- Helpers: fixed ipMatch() for IPv4 [closes nette/http#61]
- Random: /dev/urandom is not used on Windows
- bar.js: fixed dragging in Firefox when cursor leaves the browser window
- ErrorPresenter: exception is logged to 'exception.log'
- improved coding style
For the details you can have a look at the diff.
Nette
v2.3.4
20. 7. 2015
Nette Framework 2.3.4 has just been released.
- improved coding style
- travis: migrating to container-based infrastructure
- travis: testing with lowest dependencies
- Control: global snippet changed from NULL to \0 to be distinguished from ''
- UIMacros: {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7
- UIMacros: runtime helpers moved to UIRuntime
- ApplicationExtension: missing RobotLoader throws exception
- Database\Helpers::loadFromFile() uses native exec() without logging and creating result set
- Selection: fixed exception namespace
- Forms\Helpers::createSelectBox: added parameter $selected
- ChoiceControl, MultiChoiceControl: added $checkAllowedValues
- ChoiceControl, MultiChoiceControl: renamed 'range' to 'set' in exception
- Session: session ID is not regenerated when not set
- added Mail\SendException
- Callback::invokeSafe() workaround for HHVM bug facebook/hhvm#4625
- Callback::invokeSafe() removes function name from error message
- Random: /dev/urandom is not used on Windows
- PhpWriter, CoreMacros: microoptimizations
- Tracy: support for PHP7 Throwable
- Logger::getExceptionFile() is public
- Bar: live data for previous request are stored in session
- bar.css: added text-shadow reset
For the details you can have a look at the diffs: application, bootstrap, caching, component-model, database, deprecated, di, finder, forms, http, mail, neon, php-generator, reflection, robot-loader, safe-stream, security, tokenizer, utils, latte, tracy.
Nette
v2.2.10
20. 7. 2015
Nette Framework 2.2.10 has just been released.
- improved coding style
- ErrorPresenter: exception is logged to 'exception.log'
- Control: global snippet changed from NULL to \0 to be distinguished from ''
- UIMacros: {snippet} and {snippetArea} without name has name '' in both PHP 5 and PHP 7
- Component: attached() is called only once for each object
- Database\Helpers::loadFromFile() uses native exec() without logging and creating result set
- Selection: Related prototype depends on specific cache key
- Table: fixed Selection::getReferencedTable() always refetching when primary is NULL
- Session: session ID is not regenerated when not set
- Http\Helpers: fixed ipMatch() for IPv4
For the details you can have a look at the diffs: application, component-model, database, http, safe-stream, tokenizer, latte.
Tester
v1.5.0
16. 7. 2015
- support for PHP7 Throwable
- added Job::getErrorOutput() & PhpInterpreter::getErrorOutput() for PHP startup errors [Closes #229][Closes #230]
- CloverXMLGenerator: fixed report statements from not loaded files [Closes #220]
- DomQuery: fixed css2xpath for brackets in selector [Closes #235]
For more information see documentation and changelog.
Application
v2.3.4
3. 7. 2015
- Control: global snippet changed from NULL to \0 to be distinguished from ''
- UIMacros:
{snippet}
and{snippetArea}
without name has name''
in both PHP 5 and PHP 7 - UIMacros: runtime helpers moved to UIRuntime
- PresenterComponentReflection::convertType() do not change $val on error, added tests
- ApplicationExtension: missing RobotLoader throws exception [Closes #78]
- improved coding style
For the details you can have a look at the diff.
v2.3.2
3. 7. 2015
v2.3.1
3. 7. 2015
Latte
v2.3.3
3. 7. 2015
{snippet}
and{snippetArea}
without name has name''
in both PHP 5 and PHP 7- improved coding style
- PhpWriter, CoreMacros: microoptimizations
For the details you can have a look at the diff.
Latte
v2.3.2
3. 7. 2015
HtmlNode::$isEmpty
is TRUE for shortcuts like<textarea />
in HTML mode
For the details you can have a look at the diff.
Latte
v2.3.1
3. 7. 2015
{dump}
updated for 2.3- whitespace moved after closing tag for shortcuts like
<element />
<script>
with type text/json is escaped as javascript
For the details you can have a look at the diff.
Latte
v2.2.5
3. 7. 2015
- whitespace moved after closing tag for shortcuts like
<element />
- fixed
syntax=off
- added
Engine::VERSION
- some fixes
For the details you can have a look at the diff.
Tracy
v2.3.3
3. 7. 2015
- Bar: live data for previous request are stored in session [Closes #112]
- support for PHP7 type Throwable
- improved coding style
- some fixes
Nette
v2.3.3
17. 6. 2015
We would like to announce the Nette Framework 2.3.3 containing these improvements:
- Configurator: DecoratorExtension is called after ApplicationExtension to allow decorate presenters
- Component: attached() is called only once for each object
- Database: Selection: Related prototype depends on specific cache key
- DI: ContainerBuilder::removeDefinition() removes definition from $classes
- netteForms.js: works only with Nette forms, fixed toggle in IE < 9
- Checkbox, CheckboxList, RadioList: fixed rendering of and
- Nette\Http\Helpers: fixed bug in ipMatch() for IPv4
- SmtpMailer: improved exception message on write failure
- Nette\Mail\Message: added getAttachments()
- Image::fromString() undeprecated argument $format
- Arrays: added pick() - picks element from the array by key and return its value
- Strings: added after() and before()
For the details you can have a look at the diffs: bootstrap, component-model, database, di, forms, http, mail, utils.
Caching
v2.4.0
17. 6. 2015
- added SQLiteJournal
- CacheExtension: default journal changed to SQLiteJournal
- requires PHP 5.4.4 or newer
Application
v2.3.3
14. 6. 2015
- PresenterComponent::redirect() fixed compatibility with HHVM & PHP 7
- Presenter: "query" link syntax is undeprecated
- LinkGenerator: fixed exception namespace
For the details you can have a look at the diff.
Application
v2.3.2
14. 6. 2015
- PresenterComponentReflection::parseAnnotation accepts
*@annotation
- FileResponse: works according to RFC 5987
- MicroPresenter: fixed passing params to callback
- ApplicationExtension: uses file in temp dir to invalidate container
For the details you can have a look at the diff.
Application
v2.3.1
14. 6. 2015
- UIMacros: {ifCurrent} calls isLinkCurrent() method
For the details you can have a look at the diff.
Application
v2.2.6
14. 6. 2015
- PresenterComponent::redirect() fixed compatibility with HHVM & PHP 7
- FileResponse: works according to RFC 5987
For the details you can have a look at the diff.
Application
v2.2.5
14. 6. 2015
- Router: speed optimizations
- MicroPresenter: fixes
- UIMacros: {ifCurrent} calls isLinkCurrent() method
For the details you can have a look at the diff.
Nette
v2.1.10
6. 5. 2015
- Url: fixed isEqual() for same param values & regular sorting on numbers
- SQLiteStorage: fixed transaction execution
- HttpRequest: drops non-UTF8 strings, but control characters only removes
- Configurator::setDebugMode() accepts only array|string|bool
- Latte: whitespace moved after closing tag for shortcuts like
- ContainerBuilder: fixed reseting of $currentService [Closes nette/di#70]
- PresenterComponent::redirect() fixed compatibility with func_get_args() in HHVM & PHP 7
- FileResponse: According to RFC 5987 Content-Disposition filename should not contain non-US-ASCII
- Validators::isUrl: underscored subdomain support added
- Strings::toAscii() removes \x80-\xFF chars
- Strings::toAscii() uses //IGNORE
- Identity: fixed conversion of big ints [Closes #1520]
- PgSqlDriver: fixed formatLike() [Closes nette/database#46]
- fixed quirky htmlspecialchars in PHP 5.6
Nette
v2.2.9
6. 5. 2015
Nette Framework 2.2.9 has just been released and this release marks the end of active support of the Nette 2.2 series. For one year only critical issues will be fixed. All users are encouraged to upgrade to the current stable version.
- PresenterComponent::redirect() fixed compatibility with func_get_args() in HHVM & PHP 7
- FileResponse: send file name according to RFC 5987
- SQLiteStorage: fixed transaction execution
- ContainerBuilder: fixed reseting of $currentService
- netteForms.js: a lot of fixes
- Form::fireEvents() calls onError even after last onSuccess handler
- RadioList & CheckboxList: getControlPart() normalizes key type
- Url: fixed isEqual() for same param values & regular sorting on numbers
- Strings::toAscii() uses //IGNORE
For the details you can have a look at the diffs: application, caching, di, forms, http, utils.
Nette
v2.3.2
6. 5. 2015
We would like to announce the Nette Framework 2.3.2 containing these improvements:
- PresenterComponent::redirect() fixed compatibility with func_get_args() in HHVM & PHP 7
- ApplicationExtension: changed linkGenerator dependency from Nette\Http\Request to Nette\Http\IRequest
- Presenter: "query" link syntax is un-deprecated
- SQLiteStorage: fixed transaction execution
- ResultSet: parameters are passed to statement via bindValue with correct type
- Selection::fetchAssoc fix
- Database: fixed infinite recursion when using StaticConventions and trying to access undefined column
- ContainerBuilder: fixed reseting of $currentService
- netteForms.js: a lot of fixes
- FormMacros:
<label n:name></label>
is rendered as is, without caption - Form::fireEvents() calls onError even after last onSuccess handler
- RadioList & CheckboxList: getControlPart() normalizes key type
- Url: fixed isEqual() for same param values & regular sorting on numbers
- Latte: HtmlNode::$isEmpty is TRUE for shortcuts like <textarea /> in HTML mode
- Logger: added fromEmail option to set From header
- Logger: suppress timezone warning
- Bar: info bar show HHVM version if is running on HHVM
For the details you can have a look at the diffs: application, caching, database, di, forms, http, latte, tracy.
Tracy
v2.3.2
3. 5. 2015
- Logger: added fromEmail option to set From header [Closes #109]
- Bar: info bar show HHVM version if is running on HHVM
Tracy
v2.3.1
3. 5. 2015
- dumper.js: works with polluted Array (i.e. with MooTools)
- TracyExtension: added options logDirectory and logSeverity
- Logger: exception is logged to exception.log before is stored to HTML file
- Dumper::findLocation skips internal functions [Closes #104]
Tracy
v2.2.7
3. 5. 2015
Tester
v1.4.0
30. 3. 2015
- generates code coverage report in Clover XML format (via
tester --coverage coverage.xml
) - generates test reports in JUnit XML format (via
tester -o junit
) - source code moved from
Tester
tosrc
- improved Xdebug detection
- Environment: acquires lock() only if not exist #201
For more information see documentation and changelog.
Tester
v1.3.2
30. 3. 2015
This release fixes some minor issues. For more information see documentation and changes.
Nette
v2.3.1
27. 3. 2015
We would like to announce the Nette Framework 2.3.1 containing these improvements:
- FileResponse: encodes filename in Content-Disposition according to RFC 5987
- ApplicationExtension: uses file in temp dir to invalidate container
- CacheMacro: createCache has support for defining dependencies as a fallback
- ActiveRow: added support to update primary columns via update()
- MySQL: added support for objects DateInterval in column TIME
- Revertes "SqlPreprocessor: fixed IN (?) with empty array" (possible BC break, see)
- Table: fixed Selection::getReferencedTable() always refetching when primary is NULL
- ContainerPanel: displays compilation time when container is compiled
- FormMacros: empty
<label n:name />
displays caption, as{label /}
does - FormMacros: added support for
<button>
- netteForms.js: supports Common.JS and AMD loading
- Neon::encode: removed trailing spaces
- Latte:
<script>
with type text/json is escaped as javascript - Latte: improved macro
{dump}
- Tracy: fixed compatibility with MooTools and some plugins
- TracyExtension: added option
logSeverity
- added tool ClassUpdater
- and some fixes
For the details you can have a look at the diffs: application, bootstrap, caching, database, deprecated, di, forms, neon, utils, latte, tracy.
Nette
v2.2.8
10. 3. 2015
We would like to announce the Nette Framework 2.2.8 containing these improvements:
- Routing: speed optimization
- MicroPresenter: bug fixes
- Configurator::setDebugMode() accepts only bool / string / array
- NetteExtension: headers are not send and session is not started in CLI mode
- Cache::load() fixed receiving dependencies as reference
- Container::getComponent() uses better exception message when component has parent
- Database: table and column names in joins can begin with number or underscore
- PgSqlDriver: fixed formatLike() nette/database#46
- Database\Connection & Context: undeprecated some methods, refactoring
- DI\ContainerFactory: fixed thread-safety issues
- fixed some limitations of
netteForms.js
- Session::configure() do not override setHandler
- HttpRequest: drops non-UTF8 strings, but control characters only removes
- Session: fix handling exceptions thrown from SessionHandlerInterface
- Latte: fixed syntax=off
- Latte: whitespace moved after closing tag for shortcuts like
- PhpGenerator: new line after multiline phpDocs removed
- Identity: fixed conversion of big ints #1520
- Tracy\Bar: fixed reloading of (empty) panel in external windows
- Tracy\Bar: is ready for SVG icons
- Strings::toAscii() converts degree sign to ^ and removes \x80-\xFF chars
- Strings::webalize() converts non-breaking space … ™ ® etc in glibc mode
- Image::place() fixed unexpected output with transparency image #56
- Validators::isUrl: underscored subdomain support added
For the details you can have a look at the diffs: application, bootstrap, caching, component-model, database, di, forms, http, php-generator, security, utils, latte, tracy.
Nette
v2.3.0
25. 2. 2015
One - two - three, we are very proud to announce the Nette Framework two three!
Application
- all presenters are created by Dependency Injection container
- added
LinkGenerator
- Presenter: changed handling of invalid link, they triggers warnings on production and are configurable on development via 'silentLinks'
- Routing: speed optimization & caching
- added bridges for Nette DI
- added
Request::getParameter()
, deprecatedRequest::isPost()
BC breaks:
- routes and presenter names are case sensitive. Nette will warn you if you use the wrong case in presenter name. But due to performance limitation it is not checking Route mask - you should check them manually. Correct is
<presenter=UpperCasedDefaultValue>
and<presenter url-cased-regexp-mask>
. Route::addStyle()
&Route::setStyleProperty()
are deprecated and now will triggerE_USER_DEPRECATED
- removed support for deprecated Nette\Templating, template extension
.phtml
and old link syntax
Bootstrap
- in config file you can move all sections placed in
nette
to one level up. If you move up one of the sectionscontainer
,mailer
ordebugger
, rename it todi
,mail
andtracy
. - added
Configurator::addServices()
- uses new
DI\ContainerLoader
- removed deprecated constants
Configurator::DEVELOPMENT & PRODUCTION
(BC break) Configurator::setDebugMode()
accepts only bool / string / array
Caching
FileStorage
: removed usage of realpath()- added bridge for Nette DI
- ancient and deprecated ArrayAccess syntax
$val = $cache[$key]
or$cache[$key] = $val
triggersE_USER_DEPRECATED
. Use please$cache->load($key)
and$cache->save($key, $val)
Database
- throws own exceptions:
DriverException
,ConnectionException
ConstraintViolationException
,ForeignKeyConstraintViolationException
,NotNullConstraintViolationException
andUniqueConstraintViolationException
- added support for += and -= in UPDATE statement
- added support for operators in WHERE & AND
- implemented
?and
?or
?set
?values
?order
?name
- added support for '.' in column names
- forbidden syntax 'sql', 'sql', ..., i.e. after every SQL string must be at least one parameter
- SqlLiteral is parsed using SqlPreprocessor
- table and column names in joins can begin with number or underscore
- classes *Reflection split into with *Conventions & Structure
- added
IRowContainer::fetchAssoc()
,ISupplementalDriver::convertException()
(BC break) - PgSqlDriver: fixed formatLike() nette/database#46
- MySqlDriver by default uses utf8mb4 encoding for MySQL >= 5.5.3 instead of utf8 (possible problem)
- Connection: undeprecated some methods
- DatabaseExtension: added alias 'database.x.connection' for 'database.x'
- to ensure that new SQL translator do the same job as older one, you can install special tool named CompatibilityChecker22
Deprecated
new package for deprecated stuff
DI
- parameters auto-resolution for generated factories
- service aliases
- removed ServiceDefinition & Statement magic methods (makes it 3× faster)
- added
DecoratorExtension
,DIExtension
andInjectExtension
- added
CompilerExtension::validateConfig()
- ExtensionsExtension: allows to pass params
- dynamic services
- chained syntax
Class::method()::method()::method()
- removed dependency on nette/reflection
- ContainerFactory replaced with light ContainerLoader
- ContainerBuilder: implement escaping of '@' at the beginning of string
- Compiler: added
addConfig() & loadConfig()
, compile() returnsClassType[]
BC breaks:
- Container & ContainerBuilder::findByType() returns all services, including non-autowired
- class names are case sensitive
- removed support for placing services inside extension section in configuration file
- removed support for dynamically added extensions
Finder
Finder::filter()
callback always receives as argument (at least) aFilesystemIterator
- Finder is countable
Forms
- fixed some limitations of
netteForms.js
- TextBase: input is not silently truncated to max-length
TextBase::addFilter()
is processed during validation, addedRules::addFilter()
- now you can add filters to conditions
$input->addCondition(...)->addFilter(...)
- to
Container::onValidate
callbacks are passed values via second parameter - added bridge for Nette DI
- internal filtering methods like
Nette\Forms\Controls\TextBase::filterFloat
was removed - internal validation methods like
Nette\Forms\Controls\TextBase::validateFloat
was moved toNette\Forms\Validator
, as well asRules::$defaultMessages
- Buttons and Hidden fields are generated without HTML ID. Relying on autogenerated ID is very bad, if you want ID, set it via
setHtmlId()
- RadioList items are generated without ID too. You can enable it via
$radioList->generateId = TRUE
. But again: set you base ID viasetHtmlId()
- DefaultFormRenderer adds classes to inputs & label only during rendering process (BC break)
Http
- RequestFactory: speed optimizations
- Url: internally stores query parameters as array, improved canonicalize(), etc…
- added briges for Nette DI
- added
Helpers::formatDate()
, addedIResponse::getHeader()
(BC break) Request::getUrl()
is immutableResponse::date()
,Request::isPost()
&Request::getFile()
with multiple keys are deprecated
Latte
- template is wrapped in an class → much faster repeated rendering
- faster loading from cache file
- faster autoloader for non-Composer usage
{ifset block}
&{elseifset block}
without#
- parser detects for unclosed / malformed macros (#711)
- added support for
<script type="text/html">
(#24 & #705) - added macro
{php …}
as replacement for{? …}
- fills Html::$attrs with actual attribute values
- "words" can contain concatenation dots (i.e.
{include $dir . '/template.latte'}
#26) - combination of
n:class
&class
leads to exception
- added bridge for Nette DI
- variable
$mail
is not automatically passed to templates, you have to do it yourself (BC break) (but better than{var $mail->subject = "Your new order"}
is this<title>Your new order</title>
, isn't it?) - if you have linked images (with relative paths) in template, pass base file path to images as second parameter to
setHtmlBody()
- Message: removes <title> from body
Neon
- chained syntax
first(a, b)second(1, 2)
Php Generator
- generating PHP files with multiple namespaces & classes
- removed magic methods (makes it much faster)
- splits long lines, uses single-quotes strings when possible
- short phpDoc for properties
Reflection
- added
Helpers::getDeclaringClass()
- added bridge for Nette DI
Robot Loader
- added support for loading from Phar
- removed usage of realpath()
- is now case sensitive and will warn you if you use the wrong case in class name
Safe Stream
- it is recommended to change protocol
safe://...
to namespacednette.safe://...
- protocol is registered automatically, no longer need to call
SafeStream::register()
Security
- added bridge for Nette DI
Tracy
- Bluescreen & Debug Bar: 10× smaller HTML code, 10× faster, deeper depth of dumps
- Debug Bar: redesigned, uses vector icons
- Bluescreen: dumps contain location of class definition (can be opened in editor with ctrl key)
- Bluescreen: added link "skip error" to suppress strictMode
- Bluescreen: added Exception panel
- added
Tracy\ILogger
and rewritten defaultLogger
Debugger::enable()
implements checking of cookie (formatcookie@ip.address
)- customizable 500 error template via
Debugger::$errorTemplate
- Dumper: new options
LOCATION_SOURCE, LOCATION_LINK, LOCATION_CLASS
- Dumper: customizable object exportes
- completely rewritten JavaScript, now requires IE 10+ (removed tracyQ.js)
- added bridge for Nette DI
Utils
- added
Arrays::normalize()
,Callback::invokeSafe()
,Html::data()
,Strings::firstLower()
Image::from()
throwsImageException
when is unable to decode fileImage::place()
fixes support for alpha channelCallback::closure()
returns native closures since PHP 5.4Strings::chr()
throwsNette\InvalidArgumentException
if code point is not in valid rangeValidators::isUrl()
accepts underscores in subdomains
Component Model
v2.2.1
24. 2. 2015
- Container::getComponent() uses better exception message when component has parent #1
v2.3.0
31. 1. 2015
- added bridge for Nette DI
- variable
$mail
is not automatically passed to templates, you have to do it yourself (BC break) (but better than{var $mail->subject = "Your new order"}
is this<title>Your new order</title>
, isn't it?) - if you have linked images (with relative paths) in template, pass base file path to images as second parameter to
setHtmlBody()
- Message: removes <title> from body
v2.2.3
31. 1. 2015
- fix
For the details you can have a look at the diff.
Bootstrap
v2.3.0
31. 1. 2015
- in config file you can move all sections placed in
nette
to one level up. If you move up one of the sectionscontainer
,mailer
ordebugger
, rename it todi
,mail
andtracy
. - added
Configurator::addServices()
- uses new
DI\ContainerLoader
- removed deprecated constants
Configurator::DEVELOPMENT & PRODUCTION
(BC break) Configurator::setDebugMode()
accepts only bool / string / array
Bootstrap
v2.2.4
31. 1. 2015
- fixes
For the details you can have a look at the diff.
Bootstrap
v2.2.3
31. 1. 2015
Di
v2.3.0
31. 1. 2015
- parameters auto-resolution for generated factories
- service aliases
- removed ServiceDefinition & Statement magic methods (makes it 3× faster)
- added
DecoratorExtension
,DIExtension
andInjectExtension
- added
CompilerExtension::validateConfig()
- ExtensionsExtension: allows to pass params
- dynamic services
- chained syntax
Class::method()::method()::method()
- removed dependency on nette/reflection
- ContainerFactory replaced with light ContainerLoader
- ContainerBuilder: implement escaping of '@' at the beginning of string
- Compiler: added
addConfig() & loadConfig()
, compile() returnsClassType[]
BC breaks:
- Container & ContainerBuilder::findByType() returns all services, including non-autowired
- class names are case sensitive
- removed support for placing services inside extension section in configuration file
- removed support for dynamically added extensions
Application
v2.3.0
31. 1. 2015
- all presenters are created by Dependency Injection container
- added
LinkGenerator
- Presenter: changed handling of invalid link, they triggers warnings on production and are configurable on development via 'silentLinks'
- Routing: speed optimization & caching
- added bridges for Nette DI
- added
Request::getParameter()
, deprecatedRequest::isPost()
BC breaks:
- routes and presenter names are case sensitive. Nette will warn you if you use the wrong case in presenter name. But due to performance limitation it is not checking Route mask - you should check them manually. Correct is
<presenter=UpperCasedDefaultValue>
and<presenter url-cased-regexp-mask>
. Route::addStyle()
&Route::setStyleProperty()
are deprecated and now will triggerE_USER_DEPRECATED
- removed support for deprecated Nette\Templating, template extension
.phtml
and old link syntax
Forms
v2.3.0
31. 1. 2015
- fixed some limitations of
netteForms.js
- TextBase: input is not silently truncated to max-length
TextBase::addFilter()
is processed during validation, addedRules::addFilter()
- now you can add filters to conditions
$input->addCondition(...)->addFilter(...)
- to
Container::onValidate
callbacks are passed values via second parameter - added bridge for Nette DI
- internal filtering methods like
Nette\Forms\Controls\TextBase::filterFloat
was removed - internal validation methods like
Nette\Forms\Controls\TextBase::validateFloat
was moved toNette\Forms\Validator
, as well asRules::$defaultMessages
- Buttons and Hidden fields are generated without HTML ID. Relying on autogenerated ID is very bad, if you want ID, set it via
setHtmlId()
- RadioList items are generated without ID too. You can enable it via
$radioList->generateId = TRUE
. But again: set you base ID viasetHtmlId()
- DefaultFormRenderer adds classes to inputs & label only during rendering process (BC break)
Database
v2.3.0
31. 1. 2015
- throws own exceptions:
DriverException
,ConnectionException
ConstraintViolationException
,ForeignKeyConstraintViolationException
,NotNullConstraintViolationException
andUniqueConstraintViolationException
- added support for += and -= in UPDATE statement
- added support for operators in WHERE & AND
- implemented
?and
?or
?set
?values
?order
?name
- added support for '.' in column names
- forbidden syntax 'sql', 'sql', ..., i.e. after every SQL string must be at least one parameter
- SqlLiteral is parsed using SqlPreprocessor
- table and column names in joins can begin with number or underscore
- classes *Reflection split into with *Conventions & Structure
- added
IRowContainer::fetchAssoc()
,ISupplementalDriver::convertException()
(BC break) - PgSqlDriver: fixed formatLike() #46
- MySqlDriver by default uses utf8mb4 encoding for MySQL >= 5.5.3 instead of utf8 (possible problem)
- Connection: undeprecated some methods
- DatabaseExtension: added alias 'database.x.connection' for 'database.x'
- to ensure that new SQL translator do the same job as older one, you can install special tool named CompatibilityChecker22
Caching
v2.3.0
31. 1. 2015
FileStorage
: removed usage of realpath()- added bridge for Nette DI
- ancient and deprecated ArrayAccess syntax
$val = $cache[$key]
or$cache[$key] = $val
triggersE_USER_DEPRECATED
. Use please$cache->load($key)
and$cache->save($key, $val)
Database
v2.2.3
31. 1. 2015
Helpers::dumpSql()
quotes strings using connection- SqlPreprocessor: fixed non-associative array detection
For the details you can have a look at the diff.
Finder
v2.3.0
31. 1. 2015
Finder::filter()
callback always receives as argument (at least) aFilesystemIterator
- Finder is countable
Finder
v2.2.1
31. 1. 2015
- fixes
For the details you can have a look at the diff.
Http
v2.3.0
31. 1. 2015
- RequestFactory: speed optimizations
- Url: internally stores query parameters as array, improved canonicalize(), etc…
- added briges for Nette DI
- added
Helpers::formatDate()
, addedIResponse::getHeader()
(BC break) Request::getUrl()
is immutableResponse::date()
,Request::isPost()
&Request::getFile()
with multiple keys are deprecated
Latte
v2.3.0
31. 1. 2015
- template is wrapped in an class → much faster repeated rendering
- faster loading from cache file
- faster autoloader for non-Composer usage
{ifset block}
&{elseifset block}
without#
- parser detects for unclosed / malformed macros (nette/nette#711)
- added support for
<script type="text/html">
(#24 & nette/nette#705) - added macro
{php …}
as replacement for{? …}
- fills Html::$attrs with actual attribute values
- "words" can contain concatenation dots (i.e.
{include $dir . '/template.latte'}
#26) - combination of
n:class
&class
leads to exception
Neon
v2.3.0
31. 1. 2015
- chained syntax
first(a, b)second(1, 2)
Neon
v2.2.4
31. 1. 2015
- Encoder: encodes strings with JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
- NeonDecoder: implemented support for unicode surrogate pairs
For the details you can have a look at the diff.
Neon
v2.2.3
31. 1. 2015
- fixed array-after-key parsing
For the details you can have a look at the diff.
Php Generator
v2.3.0
31. 1. 2015
- generating PHP files with multiple namespaces & classes
- removed magic methods (makes it much faster)
- splits long lines, uses single-quotes strings when possible
- short phpDoc for properties
Reflection
v2.3.0
31. 1. 2015
- added
Helpers::getDeclaringClass()
- added bridge for Nette DI
Reflection
v2.2.1
31. 1. 2015
- AnnotationsParser::expandClassName() resolves
self
to original class name
Robot Loader
v2.3.0
31. 1. 2015
- added support for loading from Phar
- removed usage of realpath()
- is now case sensitive and will warn you if you use the wrong case in class name
Robot Loader
v2.2.1
31. 1. 2015
Safe Stream
v2.3.0
31. 1. 2015
- protocol
safe://
changed tonette.safe://
- protocol is registered automatically, no longer need to call
SafeStream::register()
Security
v2.3.0
31. 1. 2015
- added bridge for Nette DI
Utils
v2.3.0
31. 1. 2015
- added
Arrays::normalize()
,Callback::invokeSafe()
,Html::data()
,Strings::firstLower()
Image::from()
throwsImageException
when is unable to decode fileImage::place()
fixes support for alpha channelCallback::closure()
returns native closures since PHP 5.4Strings::chr()
throwsNette\InvalidArgumentException
if code point is not in valid rangeValidators::isUrl()
accepts underscores in subdomains
Tracy
v2.3.0
31. 1. 2015
- Bluescreen & Debug Bar: 10× smaller HTML code, 10× faster, deeper depth of dumps
- Debug Bar: redesigned, uses vector icons
- Bluescreen: dumps contain location of class definition (can be opened in editor with ctrl key)
- Bluescreen: added link "skip error" to suppress strictMode
- Bluescreen: added Exception panel
- added
Tracy\ILogger
and rewritten defaultLogger
Debugger::enable()
implements checking of cookie (formatcookie@ip.address
)- customizable 500 error template via
Debugger::$errorTemplate
- Dumper: new options
LOCATION_SOURCE, LOCATION_LINK, LOCATION_CLASS
- Dumper: customizable object exportes
- completely rewritten JavaScript, now requires IE 10+ (removed tracyQ.js)
- added bridge for Nette DI
Latte
v2.2.4
28. 1. 2015
- implemented
{elseifset #block}
- fixed some bugs
For the details you can have a look at the diff.
Tester
v1.3.1
27. 1. 2015
This release fixes some issues:
- FileMock: removed uniqid(), because is not unique #177
- HHVM: register_shutdown_handler() fixed in 3.4.0 #162
- CodeCoverage/template.phtml: suppressed error when datetime zone is not set #195
- Runner: stop-on-fail can be invoked by initial phase #185
- Environment::lock() allows multiple locks #201
For more information see documentation and changes.
Application
v2.2.4
30. 12. 2014
Application
v2.2.3
30. 12. 2014
Caching
v2.2.3
30. 12. 2014
Caching
v2.2.2
30. 12. 2014
- SQLiteStorage: fixed
clean(Cache::ALL)
For the details you can have a look at the diff.
Di
v2.2.3
30. 12. 2014
Di
v2.2.2
30. 12. 2014
Forms
v2.2.4
30. 12. 2014
- BaseControl: allow passing objects to translator in control
- netteForms.js: getValue returns bool for checkbox
- bower: excluded examples folder
For the details you can have a look at the diff.
Forms
v2.2.3
30. 12. 2014
- CsrfProtection: token is expired after regenerateId() (i.e. after logout) [Closes #36]
- CSRF: better error message
- CsrfProtection: ignores setValue(), is not erased by Form::setValues() [Closes #39][Closes #40]
- RadioList: added item label prototype [fixes #31]
- Container: added addMultiUpload()
- TextBase: added setMaxLength()
- TextInput: removed empty value=""
- TextBase: fixed setEmptyValue() and space at the end of the string [Closes #35]
- Latte: Fixed $formContainer recover after end of formContainer macro [Closes #43]
- netteforms.js: Change order of showing error message and focusing element. In Firefox element lost focus when alert is invoked.
For the details you can have a look at the diff.
Http
v2.2.5
30. 12. 2014
- RequestFactory: optimized UTF-8 validation performance
- Url::unescape() optimized for performance
- Url::unescape() unifies %aa to %AA
For the details you can have a look at the diff.
Http
v2.2.4
30. 12. 2014
Http
v2.2.2
30. 12. 2014
- Url::isEqual: improved, fixed comparing of indexed arrays
- Response: added missing HTTP status codes as constants
- Request: header names are lowercased
For the details you can have a look at the diff.
Security
v2.2.2
30. 12. 2014
Security
v2.2.1
30. 12. 2014
Utils
v2.2.4
30. 12. 2014
- Json: workaroud for PHP fatal error caused by \u0000 at the beginning of key
- speed optimization for
Object, Strings::length(), Strings::substring()
- Strings::toAscii(): unsupported characters are removed instead of being replaced with '?'
- Html: floats in attributes are printed in natural notation [Closes nette/forms#50]
For the details you can have a look at the diff.
Utils
v2.2.3
30. 12. 2014
Nette
v2.2.7
30. 12. 2014
We would like to announce the Nette Framework 2.2.7 containing these improvements:
- Json: workaroud for PHP fatal error caused by \u0000 at the beginning of key
- RequestFactory: optimized UTF-8 validation performance
- Url::unescape() optimized for performance
- speed optimization for
Object, Strings::length(), Strings::substring()
- Tracy: 500 error page is better displayed as part of page
- RoutingPanel: improved dumping of objects
- MemcachedStorage: the key must not include control characters or whitespace
- ExtensionsExtension: Allow passing parameters to extension constructor
- ContainerFactory: rewritten caching mechanism to not use fopen
- BaseControl: allow passing objects to translator in control
- netteForms.js: getValue returns bool for checkbox
- UserPanel: is rendered only when headers are not sent (fixes bug introduced in v2.2.6)
- Strings::toAscii(): unsupported characters are removed instead of being replaced with '?'
- Html: floats in attributes are printed in natural notation
- DI: annotations
@inject
can be defined in traits - Neon: support for unicode surrogate pairs, improved encoding of strings
For the details you can have a look at the diffs: application, caching, di, finder, forms, http, neon, security, utils, tracy.
Nette
v2.1.9
30. 12. 2014
Nette Framework 2.1.9 has just been released and this release marks the end of active support of the Nette 2.1 series. For one year only critical issues will be fixed. All users are encouraged to upgrade to the current stable version Nette 2.2.
- Json: workaroud for PHP fatal error caused by \u0000 at the beginning of key
- RequestFactory: optimized UTF-8 validation performance
- Url::unescape() optimized for performance
- speed optimization for
Object, Strings::length(), Strings::substring()
- RoutingPanel: improved dumping of objects
- MemcachedStorage: the key must not include control characters or whitespace
- BaseControl: allow passing objects to translator in control
- netteForms.js: getValue returns bool for checkbox
- UserPanel: is rendered only when headers are not sent (fixes bug introduced in v2.1.8)
- Strings::toAscii(): unsupported characters are removed instead of being replaced with '?'
- Html: floats in attributes are printed in natural notation
- some other fixes
For the details you can have a look at the diff.
Tracy
v2.2.6
30. 12. 2014
- 500 error page is better displayed as part of page
- some fixes
For the details you can have a look at the diff.
Tracy
v2.2.5
30. 12. 2014
- OutputDebugger: stack is printed in title, output is grouped by stack trace
- added OutputDebugger example
- some fixes
For the details you can have a look at the diff.
Tracy
v2.2.4
30. 12. 2014
- BlueScreen: collapsePaths is set to /vendor dir
- a lot of fixes
For the details you can have a look at the diff.
Nette
v2.0.18
22. 12. 2014
Nette Framework 2.0.18 has just been released and this release marks the end of life of the Nette 2.0 series and end of support for PHP 5.2. All users are encouraged to upgrade to the current stable version Nette 2.2.
- Json: workaround for PHP fatal error
- Response::redirect() prints only http/s links
- MemcachedStorage: keys must not include control characters
For the details you can have a look at the diff.
Nette
v2.2.6
15. 11. 2014
We would like to announce the Nette Framework 2.2.6 containing these improvements:
- Http\Response: workaround for PHP bugs #61106 and #66375
- Http\Response::redirect() link is printed only for https? protocol
- Tracy: fixed positioning of window
- Tracy\OutputDebugger: stack is printed in title
For the details you can have a look at the diffs: bootstrap, http, reflection, tracy.
Nette
v2.1.8
15. 11. 2014
We would like to announce the Nette Framework 2.1.8 containing these improvements:
- Http\Response: workaroud for PHP bugs #61106 and #66375
- Http\Response::redirect() link is printed only for https? protocol
- Debugger: fixed positioning of window
For the details you can have a look at the diff.
Nette
v2.0.17
29. 10. 2014
Nette Framework 2.0.17 has just been released and contains these security fixes:
- CsrfProtection token is expired after regenerateId() (i.e. after logout)
- CSRF error message changed to
Your session has expired. Please return to the home page and try again.
For the details you can have a look at the diff.
Please note that the 2.0 series will enter an end of life cycle and receive only (critical) fixes for year 2014. This is also the last series for PHP 5.2. All users are encouraged to upgrade to Nette Framework 2.2.
Nette
v2.1.6
29. 10. 2014
We would like to announce the Nette Framework 2.1.6 containing these improvements:
- CsrfProtection: token is expired after regenerateId() (i.e. after logout) security fix!
- CsrfProtection: ignores setValue(), is not erased by Form::setValues
- TextInput: fixed setEmptyValue() with space at the end of the string
- fixes in netteForms.js
- Route: %domain% and %tld% works with IP
- SqlPreprocessor: fixed non-associative array detection
- Url::isEqual: fixed comparing of indexed arrays
- UserPanel: is rendered only when headers are not sent
- fixes in phpDoc
Due to PHP bugs #61106 and #66375 we recommend to use version 2.1.7.
For the details you can have a look at the diff.
Nette
v2.2.4
27. 10. 2014
We would like to announce the Nette Framework 2.2.4 containing these improvements:
Forms:
- CsrfProtection: token is expired after regenerateId() (i.e. after logout) security fix!
- CsrfProtection: ignores setValue(), is not erased by Form::setValues
- Form: calling setAction() bypasses creation of 'do' element
- DefaultFormRenderer: support for setOption('id') for groups
- RadioList: added item label prototype
- Container: added addMultiUpload()
- TextBase: added setMaxLength()
- TextInput: removed empty value=""
- TextBase::setEmptyValue() can contain space at the end of the value
- fixes in netteForms.js
Tracy:
- fixed double calling Debugger::enable(), Debugger: $logSeverity in development mode, CSS
- BlueScreen: collapsePaths is set to /vendor dir
- create-phar: minification for JS & CSS
- Debugger: removed error message in non-HTML production mode
- TracyBridge initialization moved from NetteExtension to Configurator
others:
- supported
$configurator->addConfig(array(...configuration...))
- Template: added __call() for BC
- Route: %domain% and %tld% works with IP
- SqlPreprocessor: fixed non-associative array detection
- Http\Response: Added missing HTTP status codes as constants
- Url::isEqual: fixed comparing of indexed arrays
- UserPanel: is rendered only when headers are not sent
- DateTime: createFromFormat returns FALSE on failure
- Latte: implemented {elseifset #block}
- Latte: allows load templates from phar file
- Database: strings in Tracy Bar are correctly escaped
- Http: fixes in phpDoc
Due to PHP bugs #61106 and #66375 we recommend to use version 2.2.5.
For the details you can have a look at the diffs: application, bootstrap, caching, database, di, forms, http, mail, neon, security, utils, latte, tracy.
Tester
v1.3.0
27. 9. 2014
- officially supports HHVM v3.3.0 (thanks to @Majkl578 & @milo)
- added option
-o
(output format) which can enumerate from:console
: the same as default, but logo is not printedtap
: replacement for the deprecated --tap option (Test Anything Protocol)none
: nothing is printed, only bad usage errors when occures
- removed dependency on iconv and json extensions
- refactoring of
Environment::setup()
and file tester.php - FileMock works with
is_readable
&is_writable
For more information see documentation and changelog.
Nette
v2.0.16
28. 8. 2014
Nette Framework 2.0.16 has just been released and contains these security fixes:
- Configurator::setDebugMode() without argument uses autodetection
- Mail: fixed headers encoding
- Mail: setHtmlBody() decodes %XX in URL
- PhpGenerator: fixed dumping of non-public properties
- DI: better exception messages
- and some other fixes
For the details you can have a look at the diff.
Please note that the 2.0 series will enter an end of life cycle and receive only (critical) fixes for year 2014. This is also the last series for PHP 5.2. All users are encouraged to upgrade to Nette Framework 2.2.
Nette
v2.1.5
28. 8. 2014
We would like to announce the Nette Framework 2.1.5 containing these improvements:
- new way how to detect errors in native PHP function (used in Session, Mail, Strings, …)
- Configurator::setDebugMode() without argument uses autodetection
- DI: fixed inheritance
- DI: better exception messages
- Forms: fixed erasing of manually added errors via addError
- Forms: fixed getHttpData() for multiple file uploads
- Latte: macro {includeblock} gently trims output
- Http\Response: added $warnOnBuffer
- Mail: fixed headers encoding nette/mail#4
- Mail: setHtmlBody() decodes %XX in URL
- PhpGenerator: ClassType::from processes only own properties
- PhpGenerator: fixed dumping of non-public properties
For the details you can have a look at the diff.
Nette
v2.2.3
28. 8. 2014
We would like to announce the Nette Framework 2.2.3 containing these improvements:
Fixes:
- new way how to detect errors in native PHP function (used in Session, Mail, Strings, …)
- DI: fixed inheritance
- Database & DI: fixes autowiring for multiple connections
- Database: fixed & enhanced support for multiple scheme reflection
- Forms: fixed erasing of manually added errors via addError
- Forms: fixed getHttpData() for multiple file uploads
- Http\Response: added $warnOnBuffer
- Latte: filter
|date
respects active timezone - Latte: macro {includeblock} gently trims output
- Mail: fixed headers encoding nette/mail#4
- Mail: setHtmlBody() decodes %XX in URL
- PhpGenerator: ClassType::from processes only own properties
- PhpGenerator: fixed dumping of non-public properties
- Template::registerHelperLoader: removed E_USER_DEPRECATED
- TemplateFactory: added missing filters modifyDate, length & null
- Neon: fixed parsing of:
key1:
- subitem
- subitem
News:
- added support for
$configurator->setDebugMode('secret@23.75.345.200')
, wheresecret
must match with cookienette-debug
- added Latte\Engine::invokeFilter(), as a replacement for
$template->$filter()
. - DI: better exception messages
- NDBT: added support for NULL with operator NOT
- Forms & Latte: prettier output formating
- Tracy: added Debugger::$logSeverity for logging bluescreen for errors/warnings/notices in production mode
- added Validators::isUri()
For the details you can have a look at the diffs: application, bootstrap, database, di, forms, http, mail, neon, php-generator, utils, latte, tracy.
Forms
v2.2.2
28. 8. 2014
- fixed erasing of manually added errors via addError
- fixed getHttpData() for multiple file uploads
- Latte: prettier output formating
For the details you can have a look at the diff.
Application
v2.2.2
27. 8. 2014
Template::registerHelperLoader
: removed E_USER_DEPRECATEDTemplateFactory
: added missing filters modifyDate, length & null- Application disables warnOnBuffer before error 500 is sent nette/nette#1366
For the details you can have a look at the diff.
Bootstrap
v2.2.2
27. 8. 2014
- added support for
$configurator->setDebugMode('secret@23.75.345.200')
, wheresecret
must match with cookienette-debug
For the details you can have a look at the diff.
Database
v2.2.2
27. 8. 2014
- DI: fixed autowiring for multiple connections
- fixed & enhanced support for multiple scheme reflection
- NDBT: added support for NULL with operator NOT
For the details you can have a look at the diff.
Di
v2.2.1
27. 8. 2014
- fixed service inheritance
- better exception messages
- added
ContainerBuilder::addExcludedClasses()
for excluding classes from autowiring nette/nette#1424 - added
ServiceDefinition::getTag()
- Compiler: builder is created in constructor
For the details you can have a look at the diff.
Http
v2.2.1
27. 8. 2014
- Response: added $warnOnBuffer
- fixes
For the details you can have a look at the diff.
Latte
v2.2.3
27. 8. 2014
- filter
|date
respects active timezone - macro
{includeblock}
gently trims output - added Latte\Engine::invokeFilter(), as a replacement for former
$template->$filter()
. - prettier output formating for some macros
For the details you can have a look at the diff.
v2.2.2
27. 8. 2014
Neon
v2.2.2
27. 8. 2014
Php Generator
v2.2.1
27. 8. 2014
- fixed dumping of non-public properties
ClassType::from
processes only own properties
For the details you can have a look at the diff.
Tracy
v2.2.3
27. 8. 2014
- added
Debugger::$logSeverity
for logging bluescreen for errors/warnings/notices in production mode
For the details you can have a look at the diff.
Utils
v2.2.2
27. 8. 2014
- Strings, Arrays, Json: rewritten way how errors in PCRE functions are detected
- added Validators::isUri()
For the details you can have a look at the diff.
Neon
v2.2.1
24. 6. 2014
- allows combinations of tabs and spaces
- accepts short bullet syntax:
- key: val
key2: val2
For the details you can have a look at the diff.
Nette
v2.2.2
24. 6. 2014
We would like to announce the Nette Framework 2.2.2 containing these improvements:
- Route: allows to use parameters with long names
- FileResponse: send response either as attachment or inline
- UI\Presenter: all services except httpRequest & httpResponse are optional
- Tracy: better error messages when is Tracy unable to log errors
- Latte: added support for empty
{var $foo}
- netteForms: toggle related event handler is added only once
- Configurator::setDebugMode(): removed default value
- a lot of bugfixes
For the details you can have a look at the diffs: application, bootstrap, caching, database, forms, mail, latte, tracy.
Application
v2.2.1
24. 6. 2014
- Route: allows to use parameters with long names
- FileResponse: send response either as attachment or inline
- UI\Presenter: all services except httpRequest & httpResponse are optional
- fixed bugs
For the details about the changes you can have a look at the Github diff.
Bootstrap
v2.2.1
24. 6. 2014
- Configurator::setDebugMode(): removed default value
- fixed bugs
For the details about the changes you can have a look at the Github diff.
Caching
v2.2.1
24. 6. 2014
Nothing new.
Database
v2.2.1
24. 6. 2014
- ResultSet: fix, empty keys are not converted to properties
For the details about the changes you can have a look at the Github diff.
Forms
v2.2.1
24. 6. 2014
- netteForms: toggle related event handler is added only once
- some fixes
For the details about the changes you can have a look at the Github diff.
v2.2.1
24. 6. 2014
- SendMailMailer: fixed catching of error message
For the details you can have a look at the diff.
Latte
v2.2.2
24. 6. 2014
- added support for empty
{var $foo}
- fixed some bugs (nette/nette#1498, …)
Note: usage of some internal variables like $_l
has been changed.
For the details about the changes you can have a look at the Github diff.
Latte
v2.2.1
24. 6. 2014
Added protection against innerHTML mXSS vulnerability nette/nette#1496
For the details about the changes you can have a look at the Github diff.
Tracy
v2.2.2
24. 6. 2014
- better error messages when is Tracy unable to log errors
- a lot of fixes
For the details you can have a look at the diff.
Tester
v1.2.0
11. 6. 2014
- added option
--stop-on-fail
that stops execution upon first error - added FileMock for mocking files #137
- added Assert::count()
- DomQuery supports HTML 5
- DataProvider can use default values of target method #123
- allowed combination of annotations like
@testcase
,@multiple
or@dataprovider
- fixed some bugs in Coverage reporter
For more information see documentation and changelog.
Nette
v2.2.1
27. 5. 2014
We would like to announce the Nette Framework 2.2.1 containing these improvements:
- Latte & Nette\Utils\Html: added protection against innerHTML mXSS vulnerability
- Tracy: Dumper prints attribute data-tracy-href only when option 'location' is enabled
- Neon: accepts short bullet syntax:
- key: val
key2: val2
For the details you can have a look at the diffs: neon, robot-loader, utils, latte, tracy.
Nette
v2.1.4
26. 5. 2014
We would like to announce the Nette Framework 2.1.4 containing these fixes:
- Latte & Nette\Utils\Html: added protection against innerHTML mXSS vulnerability
- Latte: fixed parsing {macro|modifier /}
- Latte: fixed including parent block multiple times
- Latte, DI: improved error messages
- Tracy: Dumper prints attribute data-tracy-href only when option 'location' is enabled
- RadioList: attrs of radiolist label aren't appended to labels of radio
- Database: ResultSet: empty keys are not converted to properties
- Strings::toAscii(): support for czech and french quotation marks
- RobotLoader: works with PHP 5.6 syntax ClassName::class
For the details you can have a look at the diff.
Utils
v2.2.1
25. 5. 2014
Added protection against innerHTML mXSS vulnerability.
IE8 for code <div attr="´´foo=bar">
produces invalid innerHTML <div attr=´´foo=bar>
. Adding a space at the end of the attribute forces IE to put quotes around the attribute.
For the details you can have a look at the diff.
Nette
v2.0.15
24. 5. 2014
We would like to announce the Nette Framework 2.0.15 containing these fixes and improvements:
- Strings::random() uses the best available entrophy generator
- Latte & Nette\Utils\Html: added protection against innerHTML mXSS vulnerability ("see":https://www.slideshare.net/x00mario/the-innerhtml-apocalypse)
- Latte: fixed including parent block multiple times
- Latte: improved HTML comments escaping
- Latte: improved |safeurl helper
- Debugger: fixed HTTPS detection on nginx
- Database: fixes in PostgreSQL and SQlite drivers
- Database: ResultSet: empty keys are not converted to properties
- RobotLoader: works with PHP 5.6 syntax ClassName::class
- added support DateTimeImmutable
For the details you can have a look at the diff.
Please note that the 2.0 series will enter an end of life cycle and receive only (critical) fixes for year 2014. This is also the last series for PHP 5.2. All users are encouraged to upgrade to Nette Framework 2.2.
Tracy
v0.7
23. 5. 2014
First public release, see https://phpfashion.com/ladenka-jak-se-vam-libi
Tracy
v0.9.1
23. 5. 2014
- added OutputDebugger
- added @tracySkipLocation annotation
- some fixes
For the details you can have a look at the diff.
Tracy
v2.2.1
23. 5. 2014
- Dumper exposes file paths only when option 'location' is enabled
- Bluesceen: fixed dumping variables in source code
For the details you can have a look at the diff.
Application
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Safe Stream
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Tracy
v2.2.0
12. 5. 2014
- added Tracy logo (replaces Nette logo)
- exceptions are logged to file 'exception.log' instead of 'error.log'
- CSS: replaced .tracy-toggle-collapsed with .tracy-toggle.tracy-collaped
- a lot of fixes
For the details you can have a look at the diff.
Forms
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Utils
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Tokenizer
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Security
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Robot Loader
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Reflection
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Php Generator
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Neon
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md and sandbox.
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Latte
v2.2.0
12. 5. 2014
After 6 years of development Latte has become standalone templating engine with a lot of cool features.
- context sensitive escaping
- easy PHP-like syntax
- n:attributes
For more information see readme.md.
Http
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Finder
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Di
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Database
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Component Model
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Caching
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Bootstrap
v2.2.0
12. 5. 2014
The first standalone release. For more information see readme.md.
Nette
v2.1.3
12. 5. 2014
We would like to announce the Nette Framework 2.1.3 containing these fixes:
- Strings::fixEncoding() uses iconv in PHP 5.3, because htmlspecialchars can be very slow
- added option to disable autoloading of annotation classes via
AnnotationsParser::$useAnnotationClasses
- Reverted SendmailMailer use CRLF in subject, see #1437 (comment)
- fixed detection of primary keys in SQlite
For the details you can have a look at the diff.
Nette
v2.2.0
11. 5. 2014
We would like to announce the Nette Framework 2.2, the biggest revolution in its history.
Nette has been split into small projects Application, Caching, ComponentModel, Nette Database, DI, Finder, Forms, Http, Latte, Mail, Neon, PhpGenerator, Reflection, RobotLoader, SafeStream, Security, Tokenizer, Tracy and Nette Utils.
It also brings complete new Latte API for standalone usage:
$latte = new Latte\Engine;
$latte->onCompile[] = function($latte) {
$latte->addMacro(...);
};
$latte->addFilter('money', ...);
$latte->render('template.latte', $parameters);
Also Nette\Diagnostics was renamed to nice and short Tracy.
You can, as usual, download complete package or install it via Composer.
Tester
v1.1.0
3. 4. 2014
- Tester: added options
--coverage
and--coverage-src
for generating code coverage reports (tool coverage-report.php was removed) - Tester uses 33 threads by default (instead of single thread)
- Tester: option
-log
changed to-l
or--log
to be consistent with other options - shows warning when no assertions are executed [Closes #112]
Assert::isEqual
can compare recursive objects [Closes #93]- added
Assert::nan()
- added PHAR (PHP Archive) distribution
- added
Tester\Environment::loadData()
for loading data via annotation@dataProvider
For more information see documentation and changelog.
Nette
v2.1.2
20. 3. 2014
We would like to announce the Nette Framework 2.1.2 containing these fixes:
- Image: added support for image resource cloning #1329
- Forms: added Form::DATA_KEYS for preserving keys in getHttpData() #1433
- Forms & netteForms.js: fixed bug in negative toggling via toggle(..., FALSE)
- PhpGenerator: Added support for variadics (PHP 5.6 feature) #1414
- Mail: SendmailMailer use CRLF in subject. #1437
- Random: mcrypt_create_iv() crashes with „Fatal error: mcrypt_create_iv(): Could not gather sufficient random data“ in PHP 5.3.3 on Windows
- Latte Macros: n:ifcontent checks for whitespaces (closes #1387)
- Latte: improved HTML comments escaping
- Debugger: fixed HTTPS detection on nginx
- Debugger: error.phtml erases HTML output
- Strings::fixEncoding() removed dependency on mbstring for UTF-8 encoding
For the details you can have a look at the diff.
Nette
v2.1.1
11. 2. 2014
We would like to announce the release of Nette Framework 2.1.1 containing these fixes:
- disables safeUrl when
|dataStream
,{link}
or{plink}
are used - adds ability to render checkboxes via
n:name
without using colon in name - enables coexistence of annotation
@method
with extension methods #1344 - fixes SelectBox::setItems without keys
- and doubled DB query after toArray #1332
- multiple service inheritance
- snippetArea with included template
- HTML5 validation of required CheckboxList
- TextInput: min/max input attributes for multiple range rules
- fixes combination of
n:name
with othern:attributes
Adds:
- CSRF token is protected against BREACH attack
- Application::$onPresenter event
- helper escapeUrl as alias for
url
- Strings::random uses openssl_random_pseudo_bytes or mcrypt_create_iv
- supports short
<select n:name=... />
For the details you can have a look at the diff.
Tester
v1.0.0
8. 2. 2014
Four years ago was added to the Nette Framework new simple unit test framework ;-) Now Nette Tester has become stable testing tool with integrated support in NetBeans 8.0 and lot of features:
- very easy and understandable API
- each test is a standalone PHP script
- fast parallel testing
- colorized and readable output, including TAP format
- code coverage analysis
- watching folders for changes and automatically re-run tests
- HTML output testing
For more information see readme.md.
Nette
v2.0.14
1. 1. 2014
Nette Framework 2.0.14 has just been released and is now available for download Feel free to update!
Please note that the 2.0 series will enter an end of life cycle and receive only (critical) fixes for year 2014. This is also the last series for PHP 5.2. All users are encouraged to upgrade to Nette Framework 2.1. For migration to namespaced version you can use script migrate-53.php.
It contains a lot of fixes and improvements:
- UI\Presenter: fixed canonicalize with components #545 and making relative URLs #1201
- UI\Presenter: sends HTTP header Vary: X-Requested-With #1133
- Database: SqlPreprocessor ignores placeholders in comments #1293
- Database: added limit for logged queries into Debugger Bar commit
- Forms: removed usage of Environment (when addProtection() is not used)
- netteForms.js: toggles are attached on
changed
event #1087 - Latte: added modifier
|safeUrl
, white list for http & ftp URL:<a href="{$url|safeUrl}">
- Latte: added modifier {foreach |noiterator}
- Latte: is faster and uses less memory thanks to removing the function extract()
- Latte: improved auto-quoting in some expressions
- Latte: fixed processing and escaping of XML
- Nette\DateTime: works with UNIX timestamps bigger than 32bits
- Debugger: Logger: HTTP_HOST is sanitized
- and one more thing: keyword final from all methods and classes has been removed
For the details you can have a look at the diff.
Nette
v2.1.0
31. 12. 2013
After two years of development we are very proud to announce the availability of Nette Framework 2.1.0!
Application & Presenter
- PresenterFactory: configurable mapping Presenter name -> Class name
- Route: new pseudo-variables
%basePath%
,%tld%
and%domain%
- Presenter: new method
sendJson()
Caching
- added SQLite storage (
Nette/Caching/Storages/SQLiteStorage
)
Database (NDB)
- complete refactoring, a ton of bug fixes
- lazy connection
- much better (dibi-like) SQL preprocessor
- Selection, ActiveRow: insert() & update() methods return row instances with refetched data
- Selection: added placeholder support select(), group(), having(), order() methods
- SqlLiteral: added placeholder support
- Selection: added WHERE conditions consider NOT for IN operator
- new driver for Sqlsrv
- Sqlite supports multi-inserts
Debugger
- Bar: you can see bar after redirect
- Dumper: colored and clickable dumps in HTML or terminal
- Debugger: full stack trace on fatal errors (requires Xdebug)
Dependency Injection (DI)
- auto-generated factories and accessors via interface
- adding compiler extensions via config file
- configurable presenters via config file
- annotation @Inject
- bullet syntax for anonymous services
Forms
- setOmitted: excludes value from $form->getValues() result
- implemented full validation scopes
- Form::getOwnErrors() returns only errors attached to form
- Radiolist::getLabel(..., $key) returns label for single item
- added ChoiceControl, MultiChoiceControl and CheckboxList
- SelectBox and CheckboxList: allowes to disable single items
- UploadControl allowes multiple files upload
- validators
Form::INTEGER
,NUMERIC
andFLOAT
converts values to integer or float - validator
Form::URL
prependshttps://
to value Form::getHttpData($htmlName)
returns data for single field- supports Twitter Bootstrap 2 & 3 (see examples)
- removed dependency on Environment
- improved toggles
- data-nette-rules attribute is JSON
Latte
- supports
<tag attr=$val>
without quotes - new macro
n:name
for<form> <input> <select> <textarea>
- partially rendered radiolists using
{input name:$key}
and{label name:$key}
- new modifier
|safeurl
which allowes only http(s), ftp and mailto protocols - safeurl is automatically used for
href
,src
,action
andformaction
attributes (can be bypassed by|nosafeurl
modifier) - new modifier
|noescape
which is preferred over exclamation mark {foreach ...|nointerator}
bypasses creating variable$iterator
- new macro
n:ifcontent
{include block}
can be written without hash
Http
- added new SessionPanel
- RequestFactory: new method
setProxy()
Utils
- new utility class
FileSystem
- new utility class
Callback
- Arrays: new method
isList()
- Arrays: method
flatten()
supports key preserving - Strings: new methods
findPrefix()
andnormalizeNewLines()
- Json: supports pretty output
- Validators: new method
isType()
Mailing
- SmtpMailer: persistent connection
Others
- minified version is PHAR file
- ObjectMixin: magic methods setProperty(), getProperty(), isProperty() and addProperty() by
@method
- SafeStream: supports
ftruncate
(requires PHP 5.4+)
Tester
v0.9.5
30. 12. 2013
Assert::error()
can test more than one error- small fixes
For more information see readme.md.
Tracy
v0.9.0
11. 12. 2013
First release of Tracy, the rebranded Nette Debug.
Tester
v0.9.4
11. 12. 2013
- you can watch multiple directories via
--watch
- a lot of fixes
For more information see readme.md.
Nette
v2.0.13
5. 11. 2013
Nette Framework 2.0.13 has just been released and is now available for download. Feel free to update!
It fixes security bug in Latte and introduces new form validators NOT_EQUAL & BLANK.
For the details about the changes you can have a look at the Github diff.
Nette
v2.0.12
8. 8. 2013
Nette Framework 2.0.12 has just been released and is now available for download. Feel free to update!
It fixes few bugs in Nette\Database discovered in 2.0.11 (#1156, #1175, #1198), in netteForms.js
, sanitizes server name in Nette\Mail
, adds support for IPv6 in Nette\Http\RequestFactory
and has better performance with APC.
For the details about the changes you can have a look at the Github diff.
Tester
v0.9.3
7. 8. 2013
- output in TAP format using
--tap
- added interface for custom output handlers
- smarter error messages, skips the same beginning part of compared strings
- supports file masks like
tester *.php
- when expected & actual variables are stored to
output/
subdirectory, messagediff file.expected file.actual
is printed
For more information see readme.md.
Tester
v0.9.2
19. 7. 2013
- much better colorized error messages!
- colors can be enabled or disabled by option
--colors
- added tests annotations
@exitCode
,@htmlCode
,@outputMatch
and@outputMatchFile
- added annotation
@throws
for TestCase Assert::match
is fully customizable viaAssert::$pattern
and regular expressionsAssert::type
accepts default PHP types- added new assertions
Assert::matchFile
,truthy
andfalsey
For more information see readme.md.
Nette
v2.0.11
11. 7. 2013
Nette Framework 2.0.11 has just been released and is now available for download. Feel free to update!
It contains a lot of fixes and improvements contributed by 17 authors:
- Nette\Database is much faster
- fixed are quotes in sent emails #634
- added new modifier
|noescape
andn:name
in Latte and improved escaping in HTML comments - new Adminer with better skin & autocomplete plugin in Sandbox, now accessible only from localhost
- and much more (#700, #1026, #900, #1057, …)
For the details about the changes you can have a look at the Github diff.
Tester
v0.9.1
9. 7. 2013
After 4 years of development Nette Tester has become stable testing tool with a lot of cool features:
- very easy and understandable API
- each test is a standalone PHP script
- fast parallel testing
- code coverage analysis
- watching folders for changes and automatically re-run tests
- colorized output
- HTML code testing
For more information see readme.md.
Nette
v0.9.7
3. 7. 2013
Nette
v2.0.10
8. 3. 2013
Nette Framework 2.0.10 has just been released and is now available for download. Feel free to update.
It contains a lot of improvements and fixes mostly in FileJournal and Database, contributed by 13 authors.
For the details about the changes you can have a look at the Github diff.
(Support for constants in config file introduced in 2.0.9 was removed due to BC break.)
Nette
v2.0.8
1. 1. 2013
New Year and new version of Nette Framework 2.0.8 has just been released. And is now available for download. Feel free to update!
Fixes and improvements:
- Database: a lot of fixes, see changelog
- security: String::random() uses even more entropy and now it's great
- Neon: fixed error "Backtrack limit was exhausted" and it removes BOM
- Debugger: "caused by" exception in better visible & some fixes
- Cache: fixed problem with nested {cache} macros
- Forms: added support for
#hash
part of URL
For the details about the changes you can have a look at the Github diff.
Nette
v2.0.7
28. 11. 2012
Nette Framework 2.0.7 has just been released and is now available for download. Feel free to update!
Fixes and improvements:
- Database: implemented multi primary key support and a lot of fixes (in type detection, …)
- Config: added support for anonymous services defined via bullets
- Latte: added support for {input $control}, {label $control} and n:input=$control, where $control is object IFormControl
- UI\Presenter: invalid URL parameters are ignored and do not throw 404 HTTP error
- MicroPresenter: returns 404 HTTP error when parameter callback is missing
- Session: session ID is not regenerated after 30 minutes
- Mail: fixed sending BCC header via SMTP protocol
- PresenterComponent: to override constructor and not to call its ancestor will not cause error
- Debugger: sends error-code after every errors
- Tests: test are updated to last version of Nette\Tester
For the details about the changes you can have a look at the Github diff.
Nette
v2.0.6
1. 10. 2012
Nette Framework 2.0.6 has just been released and is now available for download. Feel free to update!
Fixes and improvements:
- Database: really a lot of fixes and improvements, added PostgreSQL tests
- Tests: we are moved to Nette\Tester and using Travis CI
- added FTP deployment tool
- RobotLoader: smarter detection of changed files
- Finder: added workaround for PHP bug in AppendIterator
- added some workarounds for PHP 5.4.x and 5.3.16 bugs
For the details about the changes you can have a look at the Github diff.
Nette
v2.0.5
30. 8. 2012
Nette Framework 2.0.5 has just been released and is now available for download. Feel free to update! It contains a lot of minor improvements and bug fixes contributed by 10 authors.
Fixes and improvements:
- Database: really a lot of fixes and improvements
- Presenters: dependencies can be passed via inject*() methods
- Latte: fixed {define} and dynamic blocks
- FileResponse: fixed range processing
- Validators: improved URL and email validator (client side & server side)
- Debugger: dumps additional info for resources
- Sandbox contains Adminer 3.5.1 with Nette skin (looks like API doc)
For the details about the changes you can have a look at the Github diff.
Nette
v2.0.4
30. 7. 2012
Nette Framework 2.0.4 (code name Lisboa) has just been released and is now available for download. Feel free to update. It contains a lot of minor improvements and bug fixes contributed by 22 authors.
Improvements:
- Database: added support for foreign keys in PostgreSQL driver
- Added support for getting public methods as Closure in PHP >= 5.3. $this->formSubmitted
- Route: slash is not converted to %2F
- Presenter: directory
'templates'
may be located inside presenter's directory - Nette sandbox becomes a Composer package.
Changes:
- Presenter: fixed array-to-string conversion errors in PHP 5.4
- Fixes and improvements in Neon and Latte syntax.
- Improved error messages in Presenter, Latte, DI Container.
- Contains Adminer 3.4.0 with new Nette skin (looks like API doc)
For the details about the changes you can have a look at the Github diff.
Nette
v2.0.3
3. 4. 2012
Nette Framework 2.0.3 has just been released. It contains some minor improvements and bug fixes mainly for Database and NetteExtension, contributed by 14 authors.
Improvements:
- Added $_SESSION to Debugger bluescreen.
- Added syntax highlighted dump() in Linux.
- Tests runs in parallel (reduce time from 2 minutes to 10 seconds).
- Nette becomes a Composer package.
Changes:
- Default value of header X-Frame-Options is now
sameorigin
- Default value of session
autoStart
changed tosmart
. - Introduces method
Nette\Config\Configurator::setDebugMode()
used to replacesetProductionMode()
.
For the details about the changes you can have a look at the Github diff.
Nette
v2.0.1
24. 2. 2012
Nette
v2.0.0
2. 2. 2012
After years of development, after alpha & beta versions and 3 release candidates, we are very proud to announce the immediate availability of Nette Framework 2.0 final.
Nette Framework 2.0 has many innovations, some of them are unique in the PHP world:
- full Dependency Injection support, extensively used in whole framework
- new database layer with integrated awesome library NotORM
- completely rewritten Latte, very handy templating language
- customizable Debugger, developer's little helper with a lot of predefined panels
- new markup language NEON
- new ways to configure framework and applications
- Nette stays to be one of the most secured framework in the world
…and a lot lot lot of enhancements in every part of framework.
Nette Framework also comes with new and great documentation. How to get started? Try Quick Start tutorial.
Nette Framework 2 is released. It's time to celebrate!
Application
- better directory structure
- default template for error codes 4xx, 403, 404, 405, 410 and 500
- transmission of persistent parameters to the error-presenter
- Route: support for the default values
new Route('<presenter=Homepage><action=default>')
- Route: shortcut
Presenter:action
(forum) - changed
IRouter::constructUrl()
second argument toNette\Web\Uri
. - support for rapid prototyping via via
$router[] = new Route('login', function() {...})
- solve complications with store & restoreRequest & flashMessage
Templates
- remove at-sign @ from templates
- unification of all macros syntax
- syntax enhancement
{=$var ? item}
arrays{=[a, b, c]|join:' '}
comments{var $prom = 123 /*, $name = ahoj*/}
and array expansion{link default $id, (expand) $args, lang => cs}
- new syntax
{var $prom = 123, $name = ahoj}
- new macros
{first}, {last}, {sep}
and{l} {r}
- improved
{cache}
(forum) - new attributes
n:class
an:href
- extension
.latte
- automatic check of the crossing and not closing tags
- refactoring LatteMacros into more classes
- new way how to add Latte macros
- support for XML in Latte
- new form macros
{form} {label} {control}
- new form attribute
<input n:name="email" ...>
Debug
- added Debug Bar
- added template for error 500 (in production)
- URL or command line is logged
- added
Debug::log($message [, $priority])
- added
Nette\Debug::$scream = TRUE
- clickable file names in "bluescreen"
- FirePHP replaced with FireLogger
- detection of developer / production environment with proxy servers
- hiding "bluescreen" via ESC
- added UserPanel
Forms
- InstantClientScript replaced with Unobtrusive JavaScript (forum)
- added support for HTML5
- added validator Form::IMAGE
Caching
- added
ICacheJournal
andFileJournal
- added
Nette\Caching\MemoryStorage
- supports any variables as keys in a cache
Depencency Injection
- implemented configurable DI container with autowiring
- deprecated
Environment
- all classes (except Form) are independent on
Environment
Nette\Web\HttpRequest
is created viaHttpRequestFactory
- new config modes
others
- new namespaces
- added NEON, language for writing configuration
- added
Nette\Finder
(forum ) - added
SmtpMailer
(forum - added
Nette\String::length(), compare(), toAscii()
and safe regular expression viasplit(), match(), matchAll()
,replace()
andArrayTools::grep()
- added
Nette\Json
- added
CallbackFilterIterator, RecursiveCallbackFilterIterator, MapIterator
- added support for data attributes in
Nette\Web\Html
(forum) RobotLoader
supportsnetterobots.txt
RobotLoader
detects file movingloader.php
defines constantsNETTE, NETTE_VERSION_ID & NETTE_PACKAGE, NETTE_DIR
loader.php
resetserror_reporting
(na E_ALL + E_STRICT),iconv.internal_encoding, mbstring.internal_encoding
na UTF-8- created new testing framework
Nette Tests
- added tool
Code-Checker
- created tool APIGEN for generation API documentation
- added
Nette\Framework::$iAmUsingBadHost = TRUE
Nette
v0.9.6
18. 9. 2010
Řada 0.9 se uzavírá a souhrn všech bugfixů za poslední 2,5 měsíce najdete ve verzi 0.9.6. Update je doporučený a žádné nekompatibility by se objevit neměly.
Pár dní ještě 0.9.6 považujme za release candidate, kdyby se náhodou objevila nějaká chyba, promptně ji opravím.
Nette 0.9 RIP!
Nette
v0.9.5
30. 6. 2010
Venku je verze 0.9.5. Ta především opravuje řadu chybiček, jejichž kompletní výčet najdete v changelogu. Velkou interní změnou je, že repozitář byl převeden do PHP 5.3 a teprve z něj se generují distribuce frameworku určené pro PHP 5.2. Což vyřešilo nedostatky v generování prefixované verze. Druhou interní změnou je úprava adresářové struktury frameworku. Přičemž obě interní změny by neměly mít vliv na funkčnost.
Ze všech úprav bych zdůraznil jen několik:
- Nette\Mail by měl mít fixnuté všechny známé nedostatky v kompatibilitě s emailovými klienty
- metody Nette\Mail dále striktně kontrolují, zda jsou všechny parametry kódovány v UTF-8
- SmartCachingIterator (tj. makro
{foreach}
) nyní umí iterovat i nad SimpleXMLElement - používejte
login(), logout() a isLoggedIn()
, volání starších metod vyvolá varování - nové konstanty
NETTE, NETTE_VERSION_ID, NETTE_PACKAGE
a takéPHP_VERSION_ID
pod PHP < 5.2.7
Nette
v0.9.4
14. 4. 2010
Světlo světa spatřila nová stabilní verze 0.9.4. Ta především opravuje řadu chybiček, jejichž kompletní výčet najdete v changelogu. Zároveň také přináší několik vylepšení:
- podpora vícevláknového kešování pomocí callbacků a dramatické zrychlení RobotLoaderu
- aliasy
login(), logout() a isLoggedIn()
- odstraněn Session::$verificationKeyGenerator
- při spuštení
Nette\Application
se automaticky nastartuje session, je-li přítomno session-ID - přidáno
Identity::__isset()
Formuláře:
- lze používat placeholdery
%label, %name a %value
ve výchozích chybových zprávách - vypnutí překladače na určitém prvku nevypne překládání chybových zpráv
- zaměněno
<form name="...">
za<form id="...">
Šablony
- v modifikátorech lze používat mezery (např.
{$var |truncate : 30}
) a klíčová slovatrue, false, null
- přidáno makro
{var ...}
jako alias pro{assign ...}
- je podporován zápis
{var item => value}
i{var $item => value}
Nette
v0.9.3
28. 1. 2010
Po dvou měsících je tu verze 0.9.3. Přináší poměrně dost novinek a opravuje chybičky.
- vylepšení jazyka o globální funkci
callback()
a Nette\Callback pro čitelnější zápis a volání callbacků - zásadního zrychlení dosáhla třída
RobotLoader
- opraven bug přehazující pořadí parametrů v URI
- vylepšený RoutingDebugger zobrazuje více informací
- přidána třída
DateTime53
opravující zmršený DateTime v PHP 5.2 (podpora serializace & unix timestamp) - metoda createComponent() může vracet instanci
- sjednoceno chování všech funkcí ve frameworku, kterým se jako parameter předává čas. Ten může být zadán buď jako objekt DateTime, řetězec ve formátu
'+ 14 days'
, jako relativní počet sekund nebo jako UNIX timestamp. - přidána třída Nette\Web\HttpContext
- přidány funkce
String::padLeft()
aString::padRight()
(obdoba str_pad pro UTF-8) - deprecated:
Uri::setPass()
agetPass()
nahrazujeUri::setPassword()
andgetPassword()
- deprecated:
HttpResponse::expire()
nahrazujeHttpResponse::setExpiration()
- deprecated:
Nette\Object::getClass()
(důvodem je příliš obecný název, lze nahradit za$obj->reflection->name
) - odstraněny třídy
Nette\Loaders\SimpleLoader
,Nette\Config\ConfigAdapterXml
,Nette\Forms\RepeaterControl
Formuláře
InstantClientScript
: formuláře generují zgruntu nový validační JavaScriptový kód. Ten by měl být lépe přizpůsobitelný (např. pro live validation) a je nezávislý na HTML ID. V této oblasti bude vývoj pokračovat, nicméně nové chování by mělo být stabilní.HttpUploadedFile
: příkazmove()
řeší problematiku přístupových práv, umí vytvořit adresář a lze jej použít i pro více přesunů.Html
: vylepšeno chování metodgetHtml()
agetText()
, takže objekty Html lze bez problémů používat v labelech apod.- deprecated:
Form::processHttpRequest()
bylo přejmenováno naForm::fireEvents()
Debug
- globální funkce
dump()
jako ("nejen .(lze dumpovat víc proměnných)") zkratka proNette\Debug::dump()
- Debug::enable() lze předat výčet IP adres
- kvůli šetření místem nyní
Debug
nevytváří HTML logy pro opakující se chyby (zvažuju ukládat soubory komprimované) - opraveny nedostatky logování chyb na některých hostinzích
Šablony
isFirst()
aisLast()
podporuje renderování mřížek- v šablonách lze psát
<?xml ... ?>
bez kliček kvůli PHP parseru - Makro
{debugbreak}
podporuje XDebug - deprecated:
LatteFilter::invoke
potažmoCurlyBracketsFilter::invoke
(zpravidla by mělo stačit inicializaci filtru odstranit)
Image
- metoda
resize()
se zápornými argumenty zrcadlí obrázek (Image i ImageMagick) - metoda
calculateSize()
je nyní statická (BC break!)
Nette\Reflection
Asi nejvýraznější novinkou je nový soubor tříd Nette\Reflection, které sjednocují a rozšiřují možnosti meta-programování. Sem byla přesunuta podpora anotací a zpracování extension method. Řekl bych, že tohle bude příští velká věc, nicméně tuto oblast čeká ještě velký vývoj.
- anotace fungují všude, eAccelerator není překážkou
- syntaxe anotací byla rozšířena
- deprecated:
Nette\Annotations
- podpora se přesunula do třídNette\Reflection
Cache a session
- objekty ukládané do session nebo cache lze nyní verzovat pomocí anotace @serializationVersion
FileStorage
pro ukládání tagů a priority používá SQLite databázi
Co ve verzi 0.9.3 není?
Ve verzi 0.9.3 nejsou vývojové záležitosti jako tzv. nové snippety, nezměnila se třída Identity a Presenter používá starou adresářovou strukturu a má stále aktivní přepínače $oldLayoutMode
a $oldModuleMode
. Zmíněné novinky najdete až ve vývojové větvi 1.0-dev
.
Nette
v0.9.2
10. 11. 2009
Po dvou měsících je tu další setinková stabilní verze. Ta především opravuje řadu odhalených chybiček, ale také nabízí několik nových vlastností:
- Route: volitelné sekvence via
[...]
(POZOR: místo původních složených závorek jsou ve finální verzi hranaté) - nový testovací framework pro self-testing Nette
- metoda
setDefaultValue()
na prvcích formuláře - nová adresářová struktura pro moduly (aktivuje se přes $oldModuleMode) a s tím související BC break - odstranění proměnných prostředí
%templatesDir%, %presentersDir%, %componentsDir%, %modelsDir%
- vylepšení Image::crop() a resize() (thanx to kravčo)
- v presenterech lze k singletonům
User
aSession / SessionNamespace
přistupovat přes metodygetUser()
agetSession()
.
Šablony:
- předregistrované helpery: length, substr, number, replace, replaceRE, repeat, implode
- proměnná
$basePath
nahrazující$baseUri
(liší se v absenci pravostranného lomítka) - makro
{status ...}
pro odeslání HTTP kódu a{layout ...}
jako alias pro{extends ...}
- u definic bloků je nepovinný znak
#
Kromě zmíněného BC breaku s proměnnými prostředí by se žádná nekompatibilní změna objevit neměla, takže upgrade na 0.9.2 je doporučený.
Poznámka pro uživatele development verze: OldPresenter a snippety s dvojtečkou jsou součástí jen vývojové verze (tj. 0.9.3-dev) a ve verzi 0.9.2 je nenajdete.
Nette
v0.9.1
18. 9. 2009
Pouhý měsíc po vydání 0.9.0 je tu další setinková stabilní verze. Co nabízí nového?
- CurlyBrackets se přejmenoval na LatteFilter a byla finalizována podpora
n:
attributů a dopřána možnost měnit syntax maker via{syntax ...}
- výrazně byl vylepšen životní cyklus formulářů
- úpravy API doznal ServiceLocator a rozšířily se tak možnosti konfigurace přes config.ini
- framework má nyní vlastní testovací framework (code coverage se blíží 80 %)
- funkce presenterů byla formalizována a fungují jako konvertor z PresenterRequest -> IPresenterResponse
- nové podoby se dočkal Requirements Checker
- manipulace s obrázky zachovává poloprůhlednost
- vylepšeno chování cache úložiště FileStorage v prostředí Windows
- opravena řada bugů
Součástí distribuce je i nová verze dibi 1.2, jejíž hlavní novinkou je práce s datem prostřednictvím třídy DateTime, takže netrpí limitem pro UNIX timestamp.
Ačkoliv změn je poměrně dost, v jejich souvislosti jsem nezaznamenal žádné problémy, tudíž je možné je v této podobě považovat za stabilní a pustit se do dalšího vývoje. Ten se bude týkat především podpory AJAXu - ve formulářích, presenterech a šablonách.
Nette
v0.9.0
17. 8. 2009
Můžete dát sbohem verzi 0.8, má svého stabilního nástupce.
Co přináší verze 0.9.0 nového? Vylepšení je poměrně dost, jaké jsou ty nejdůležitější:
- nová knihovna Nette\Mail pro odesílání emailů
- CurlyBracketsFilter (nyní LatteFilter) prošel velkým vývojem a nově nabízí:
- nová makra
{ifset ...}...{/if}
,{assign ...}
,{default ...}
a{control ...}
- dynamická dědičnost šablon (zatím experimentální feature)
- v případě chyby zobrazuje číslo řádku v šabloně
- nová makra
- koncept chytrých továrniček pro komponenty nahrazující zapovězené metody
prepare
- přímočařejší předávání AJAXových dat přes
$presenter->payload
- nová verze Routing Debuggeru, zobrazující se jako widget na stránce
- nový pomocník programátora Nette Debug Console a další ladící novinky
- povinné volání metody startup() v Presenteru zabraňující možným chybám
- cache nabízí uživatelské validátory (via
Cache::CALLBACKS
) - cache úložiště FileStorage rozděluje soubory do složek
- přešli jsme na Git
Verze by měla být plně zpětně kompatibilní s v0.8 s výjimkou změn uvedených v tomto fóru (a ty jako vždy hlásí upozornění).
Nette
v0.8
4. 5. 2009
.
Nette
v0.7
23. 1. 2006
Released in 2008 as open source after 4 years of development.
Di
v2.4.17
compatible with PHP 8.0
Tracy
v2.8.9
Database
v3.1.7
- composer: allows nette/utils 4.0
Application
v3.1.12
- LatteExtension: added options strictParsing & phpLinter
Di
v3.1.4
- ParametersExtension: parameters containing expressions have static value '* unavailable value *'
- ParametersExtension: dynamic parameters are evaluated immediately #291
- option 'class' is allowed again
Di
v3.1.4
- 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
- ContainerPanel: refactoring
- Option 'class' is allowed again
Database
v3.1.5
- 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