Nette Framework 2.3.9 released
- David Grudl
- Nette Core | 8228
Nette Framework 2.3.9 has just been released.
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.
- abc
- Member | 92
David Grudl wrote:
This release marks the end of active support of the Nette 2.3 series. For one year only critical issues will be fixed.
Hi, maybe stupid question but do you have some list of 2.4 features and
possible BC breaks so we can (maybe ?) avoid them when writing new application?
Thanks
And thank you for good work!!
Last edited by abc (2016-02-22 17:42)
- David Grudl
- Nette Core | 8228
(Toto není detailně rozepsaná strategie, ale z hlavy napsaná odpověď na fóru o tom, jaké věci obsahuje master oproti 2.3 a mohly by to být BC breaky)
In 2.4 will be only few BC break:
- deprecated syntax
<?php ... ?>
in Latte and new warningVariable overwritten in foreach
- Presenter::getReflection() will not return object Nette\Reflection\ClassType
- Presenter makes the difference between argument NULL and FALSE (possible BC break)
- possible BC breaks in forms: Container inside ControlGroup, new options for CheckboxList, new options type
- in PhpGenerator term documents will be replaced with comments
- some class will warn that
Nette\Callback
a functioncallback()
is deprecated
Thats all.
- David Grudl
- Nette Core | 8228
Nette 2.4 will require PHP 5.6.
Important is, that 2.3 and 2.4 will be almost identical, just 2.4 will benefit from new PHP language features. So you can perfectly use 2.3 and update only when you have on server PHP 5.6 or newer.
- Matúš Matula
- Member | 257
David Grudl wrote:
In 2.4 will be only few BC break:
- deprecated syntax
<?php ... ?>
in Latte and new warningVariable overwritten in foreach
@DavidGrudl what about the new warning? can it be suppressed or do I need to use another (not yet used) variable name in foreach?