12. 1. 2025
12. 1. 2025
resolve()
isAbsolute()
&removeDotSegments()
build()
methodUrl::canonicalize()
char " does not need to be encodedFileUpload::__construct()
accepts path12. 1. 2025
Selection::fixedAssoc()
silently deprecated10. 1. 2025
1. 1. 2025
18. 12. 2024
fetchList()
as alias forfetchFields()
& shortcutsResultSet::fetchAssoc()
returns associative array by default, added shortcuts29. 11. 2024
ClassManipulator::implement()
can implement abstract classesClassManipulator::implementInterface()
renamed toimplement()
29. 11. 2024
Extractor::extractAll()
fixed file comment parsing7. 11. 2024
exposeDOMNode()
does not throw deprecation notices in PHP 8.44. 11. 2024
FileUpload::getSanitizedName()
changes the extension only for image files#2394. 11. 2024
4. 11. 2024
Route::param2path()
allows all characters defined by RFC 3986#144. 11. 2024
23. 10. 2024
22. 10. 2024
Container::addEmail()
: added $maxLength=255#303getValue()
instead ofloadHttpData()
__call()
nette/utils#3156. 10. 2024
6. 10. 2024
{default}
is evaluated lazily|localDate
respects the time zone set in PHP#380|filter
translate()
can return \Stringable#372CachingIterator::__get()
does not return a reference5. 10. 2024
ReflectionParameter::getDefaultValue()
error#3155. 10. 2024
4. 10. 2024
4. 10. 2024
4. 10. 2024
4. 10. 2024
Neon::decodeFile()
is atomic10. 9. 2024
10. 9. 2024
isNullable()
returns true when default value is null (possible BC break)19. 8. 2024
getSql()
connectToDB()
MySqlDriver::initialize()
removed support for 'utf8' charset before 5.5.3SqlsrvDriver::applyLimit()
removed support for SQL Server < 2012normalizeRow()
: removed extra float handling#307Reflection::getTable()
can access unlisted tablefetchPairs()
accepts callbackHelpers::detectType()
supports 'INT UNSIGNED'19. 8. 2024
fetchPairs()
accepts callbacknormalizeRow()
: removed extra float handling#307Helpers::detectType()
supports 'INT UNSIGNED'MySqlDriver::initialize()
removed support for 'utf8' charset before 5.5.3SqlsrvDriver::applyLimit()
removed support for SQL Server < 20129. 8. 2024
fetchPairs()
accepts callbacknormalizeRow()
: removed extra float handling#307Helpers::detectType()
supports 'INT UNSIGNED'7. 8. 2024
Strings::matchAll()
: added option 'lazy'Arrays::mapWithKeys()
&Iterables::mapWithKeys()
Iterables::memoize()
&toIterator()
7. 8. 2024
7. 8. 2024
7. 8. 2024
6. 8. 2024
|localDate
,|number
,|bytes
and|sort
filters+
5. 8. 2024
Container::getValue()
supports conversion to enums [Close#337]setNullable()
Helpers::getSupportedTypes()
returns array#3329. 7. 2024
|date
,|number
,|bytes
and|sort
filters18. 6. 2024
18. 6. 2024
18. 6. 2024
18. 6. 2024
16. 5. 2024
filterArguments()
(BC break)Container::getServiceType()
ignores dynamically added services (BC break)Container::getByType()
fixed cooperation with dynamic factory#314normalizeEntity()
fails due to service replacement12. 5. 2024
Component::tryCall()
throws BadRequestExceptionMultiplier::createComponent()
allow to return a null (#327)12. 5. 2024
Component::tryCall()
throws BadRequestExceptionMultiplier::createComponent()
allow to return a null (#327)12. 5. 2024
Component::tryCall()
throws BadRequestException12. 5. 2024
PhpNamespace::getClass()
&getFunction()
CommentAware::removeComment()
PhpFile::removeNamespace()
from()
accepts first-class callables7. 5. 2024
5. 5. 2024
setItemAttribute()
&setItemLabelAttribute()
isNullable()
29. 4. 2024
|group
|sort
accepts iterableFilters::first()
accepts iterableLoader::isExpired()
deprecatedBlueprint::printClass()
rewritten (BC break)29. 4. 2024
|sort
accepts iterableFilters::first()
accepts iterableLoader::isExpired()
deprecatedBlueprint::printClass()
rewritten (BC break)29. 4. 2024
19. 4. 2024
%rootDir%
15. 4. 2024
#[Requires]
and#[Deprecated]
<name>
methods are checked bycheckRequirements()
Component::checkRequirements()
delegated to PresenterLatteFactory::create()
Control::flashMessage()
enhanced type hint15. 4. 2024
#[Requires]
and#[Deprecated]
switch()
**
ComponentReflection::getActionRenderMethod()
&getSignalMethod()
LatteFactory::create()
1. 4. 2024
<option>
is hidden31. 3. 2024
Helpers::improveException()
improved19. 3. 2024
hasBlock()
fixed template retrieval#357<script>
#356Filters::safeUrl()
: widened supported types11. 3. 2024
10. 3. 2024
10. 3. 2024
7. 3. 2024
ClassLike::from
return type assert the subclass type (BC break) (#154)Dumper::dumpArray()
,dumpArguments()
optimizationaddMember()
,addMethod()
,addProperty()
,addConstant()
,addCase()
#1526. 3. 2024
SubmitButton::setValidationScope()
accepts stringsContainer::getUntrustedValues()
has default value4. 3. 2024
6. 2. 2024
changes
create($name)
method (BC break)4. 2. 2024
Resolver::autowireArgument()
fixed handling of new-initializer with typehint#302NeonAdapter::removeUnderscoreVisitor()
checks if key doesn't exist30. 1. 2024
getSuggestedExtension()
21. 1. 2024
Container::getComponentTree()
Container::getComponents()
parameters are silently deprecated, returns array when $deep is false (BC break)21. 1. 2024
21. 1. 2024
<label>
for CheckboxList/RadioList items21. 1. 2024
21. 1. 2024
21. 1. 2024
21. 1. 2024
21. 1. 2024
21. 1. 2024
console-lines
mode which prints each test on separate line. (#443)Environment::setupFunctions()
creates global functionstestException()
18. 1. 2024
dumpCustomObject()
printFile()
[Close#147]17. 1. 2024
Iterables
Arrays::firstKey()
,lastKey()
Arrays::filter()
Arrays::first()
&last()
: added parameter $elseArrays::first()
&last()
: added parameter $predicate#305Image::getSupportedTypes()
Strings::trim()
trims unicode spaces and ZWSP (#304)9. 1. 2024
5. 12. 2023
26. 11. 2023
9. 11. 2023
prepare()
changes:
Tag::closestTag()
finds by class name9. 11. 2023
prepare()
changes:
Tag::closestTag()
finds by class name7. 11. 2023
support for PHP 8.2, 8.3
2. 11. 2023
2. 11. 2023
2. 11. 2023
2. 11. 2023
2. 11. 2023
2. 11. 2023
29. 10. 2023
29. 10. 2023
Image::rgb()
Image::rectangleWH()
,filledRectangleWH()
,calculateTextBox()
29. 10. 2023
addDate()
,addTime()
&addDateTime()
getCacheKey()
to force refresh cache29. 10. 2023
addDate()
,addTime()
&addDateTime()
,addColor()
getCacheKey()
to force refresh cache18. 10. 2023
18. 10. 2023
17. 10. 2023
inheritMethod()
&inheritProperty()
ConstantsAware::getConstant()
Extractor::extractAll()
extracts only top-level classes and functions, fixed file comment parsinggetType()
is deprecated15. 10. 2023
getParameter()
#291#288<Type>
syntax for autowiring a collection of services (#293)15. 10. 2023
getParameter()
#291Helpers::expand()
allow concatenation of Statements#288<Type>
syntax for autowiring a collection of services (#293)15. 10. 2023
getParameter()
#291Helpers::expand()
allow concatenation of Statements#288<Type>
syntax for autowiring a collection of services (#293)11. 10. 2023
hasBlock()
#345Filters::safeUrl()
accepts Stringable<script type=unknown>
is HTML not escaped<script type=text/html>
<script>
&<style>
Filters::strLength()
uses mbstring, iconv and then utf8_decode10. 10. 2023
addFloat()
Container::getValues()
respects validation scope#287<dialog>
by default9. 10. 2023
ComponentReflection::convertType()
supports true & falsePresenter::findLayoutTemplateFile()
9. 10. 2023
match()
split intoprepareRequest()
andcompleteParameters()
RouteList::withPath()
trailing slash is optional#1129. 9. 2023
Helprs::utf8Length()
uses mbstring, iconv and then utf8_decode29. 9. 2023
Helprs::utf8Length()
uses mbstring, iconv and then utf8_decode27. 9. 2023
26. 9. 2023
25. 9. 2023
highlightLine()
produces extra</code>
Debugger:barDump()
: pass Debugger::$maxItems option to Dumper (#563)23. 9. 2023
23. 9. 2023
21. 9. 2023
initialize()
20. 9. 2023
19. 9. 2023
Strings::length()
uses mbstring, iconv and then utf8_decode#299getType()
replaced withisDir()
/isFile()
some()
,every()
andmap()
(#298)8. 9. 2023
29. 8. 2023
27. 8. 2023
27. 8. 2023
13. 8. 2023
Engine::setStrictParsing()
<{$foo}>
</foo ...>
is not allowed (BC break)TokenStream::throwUnexpectedException()
reports only single token9. 8. 2023
9. 8. 2023
7. 8. 2023
Engine::enablePhpLinter()
allows to lint generated PHP templatesarray()
andlist()
via $kindArrayNode::fromArguments()
rewritten toPrintContext::argumentsAsArray()
(BC break)$GLOBALS
30. 7. 2023
getParameter()
&hasParameter()
hasConstant()
(#133)30. 7. 2023
30. 7. 2023
Image::isTypeSupported()
collect()
returns listCallback::unwrap()
returns correct class name for private methods30. 7. 2023
28. 4. 2023
<script>
26. 4. 2023
28. 3. 2023
28. 3. 2023
18. 3. 2023
Session::getSectionNames()
, replacement forgetIterator()
18. 3. 2023
13. 3. 2023
13. 3. 2023
Resolver::autowireArguments()
fixed support for variadicsContainer::getByType()
compatibility with PHPStan (#285)13. 3. 2023
Resolver::autowireArguments()
fixed support for variadicsv3.0 maintenance has been ended, please update to v 3.1
8. 3. 2023
1. 3. 2023
{var}
and{parameters}
.
getIterator()
is abstract (BC break)28. 2. 2023
28. 2. 2023
<tracy-div>
action
is optional6. 2. 2023
6. 2. 2023
toggle()
2. 2. 2023
2. 2. 2023
2. 2. 2023
new methods:
new parameters:
removed
18. 1. 2023
18. 1. 2023
18. 1. 2023
isTypeDeclaration()
,isBuiltinType()
,isClassKeyword()
Types::isSingle()
->isSimple()
17. 1. 2023
17. 1. 2023
17. 1. 2023
17. 1. 2023
Adapter::dump()
interface method17. 1. 2023
13. 1. 2023
13. 1. 2023
13. 1. 2023
13. 1. 2023
13. 1. 2023
13. 1. 2023
on/off
&\x**
(BC break)9. 1. 2023
9. 1. 2023
getUnsafeValues()
renamed togetUntrustedValues()
9. 1. 2023
getUnsafeValues()
renamed togetUntrustedValues()
28. 12. 2022
{exitIf}
#287getIterator()
must exists (BC break)14. 12. 2022
The library has been moved to thenette/utils
14. 12. 2022
14. 12. 2022
14. 12. 2022
generateContainerKey()
12. 12. 2022
12. 12. 2022
supports PHP 8.2
5. 12. 2022
Changes:
Deprecations:
@return
are deprecated27. 11. 2022
Control::templatePrepareFilters()
silently deprecatedComponent::getParameter()
$default is silently deprecated27. 11. 2022
Changes:
New features:
Deprecations:
27. 11. 2022
BC break:
$httpRequest->getUrl()->getUser() + getPassword()// changed to[$user,$pass] =$httpRequest->getBasicCredentials();
New features:
Deprecations:
18. 11. 2022
18. 11. 2022
18. 11. 2022
Form::initialize()
sets 'secure' flagnette/http#217ControlGroup::getOption()
parameter $default is silently deprecated18. 11. 2022
Request::getReferer()
is deprecated#21018. 11. 2022
18. 11. 2022
18. 11. 2022
globalInit()
4. 11. 2022
Extension::beforeRender()
changed signature (BC break!!)Extension::beforeRender()
is called just before the template is rendered4. 11. 2022
2. 11. 2022
18. 10. 2022
12. 10. 2022
SessionStorage::setExpiration()
does not overwrite data in the sessionverifyPassword()
12. 10. 2022
6. 10. 2022
Helpers::formatDocComment()
added option $forceMultiLine6. 10. 2022
Helpers::formatDocComment()
added option $forceMultiLine6. 10. 2022
12. 9. 2022
Image::clone()
uses PNG format because GD2 is disabled since libgd 2.3.3extensionToType()
12. 9. 2022
12. 9. 2022
12. 9. 2022
29. 8. 2022
Assert::exception()
prints stack of unexpected exception19. 7. 2022
21. 6. 2022
__serialize()
Helpers::formatDocComment()
,Printer::printFunction()
& etc normalizes whitespace15. 6. 2022
setDelimiters()
(BC break)foo()
vs foo(...) (BC break)EncapsedStringNode::print()
fixed1. 6. 2022
1. 6. 2022
Engine::isExpired()
checks filemtime of extensions30. 5. 2022
<body>
display & overflow30. 5. 2022
$iterations
is deprecated17. 5. 2022
Brand new completely rewritten parser and compiler. Parses to AST nodes and then compiles to PHP.
17. 5. 2022
Form::addProtection()
fixed error "Argument 3 must be of the type string or null, int given"17. 5. 2022
17. 5. 2022
withPath()
fix II.8. 5. 2022
SecurityPolicy::allowMacros()
is deprecated, useallowTags()
addFilterLoader()
PhpWriter::formatWord()
accepts PascalCase class constants</script>
or</style>
27. 4. 2022
- added support for Generator & Fiber
</code>
DeferredContent::sendAssets()
uses Content-Length to prevent further output20. 4. 2022
16. 4. 2022
7. 4. 2022
Template::getParameter()
is deprecated2. 4. 2022
Request::getOrigin()
24. 3. 2022
Dumper::dumpException()
added option to change output file name via AssertException::$outputName10. 3. 2022
normalizeRow()
don't return small float as string#289getForeignKeys()
#281ConnectionPanel::initialize()
replacesHelpers::initializeTracy()
getColumns()
for materialized view too10. 3. 2022
10. 3. 2022
10. 3. 2022
10. 3. 2022
Node::getSubNodes()
changed to IteratorAggregate generator,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.
$foo->prop?
or$foo->call()?
{$foo|filter:1:2:3}
with{$foo|filter:1, 2, 3}
{label}
, must be written as{label /}
or pair{label}...{/label}
22. 2. 2022
implode()
with 2 argumentsPhpHelpers::reformatCode()
places elseif/catch/finally after }PhpHelpers::reformatCode()
refactoring $next{try}
and{else}
are not replaced20. 2. 2022
This release takes advantage of all the new features of PHP 8 and cleans up some issues in the API.
Stricter behaviour:
Changes:
$this
Deprecations:
ClassType::withBodiesFrom()
replaced withfrom(..., withBodies: true)
GlobalFunction::withBodyFrom()
replaced withfrom(..., withBody: true)
20. 2. 2022
removeClass()
&removeFunction()
15. 2. 2022
<tracy-div>
to reduce specificity below class specificity<tracy-div>
, uses CSS reset instead of disabling stylesheets and all classes are prefixed with 'tracy-'#533dump()
is wrapped in<tracy-div>
to use CSS resetenable()
callsdispatch()
always15. 2. 2022
24. 1. 2022
Arrays::isList()
usesarray_is_list()
is PHP 8.1Deprecated properties are written as@property-deprecated
, no standard here exists. PhpStorm and static analysis tools do not see them, which is the intention.
4. 1. 2022
This is a security release.
4. 1. 2022
This is a security release.Branch 2.9 is no longer supported
4. 1. 2022
3. 1. 2022
21. 12. 2021
Component::link()
& etc uses variadic parameter"#29821. 12. 2021
strftime()
21. 12. 2021
21. 12. 2021
getAjaxHeader()
14. 12. 2021
Resolver::resolveEntityType()
ignores return types 'object' & 'mixed'#274Resolver::autowireArgument()
uses named arguments to skip optional parameters in PHP 8Resolver::autowireArguments()
improved support for variadicsautowireArguments()
setCreator()
&getCreator()
, aliases forsetFactory()
&getFactory()
12. 12. 2021
26. 11. 2021
This is a security release.
26. 11. 2021
This is a security release.Branch 2.9 is no longer supported
26. 11. 2021
This is a security release.Branch 2.8 is no longer supported
25. 11. 2021
24. 11. 2021
24. 11. 2021
support for PHP 8.1
24. 11. 2021
queryArgs()
&ResultSet::getConnection()
are silently deprecated24. 11. 2021
24. 11. 2021
24. 11. 2021
Helpers::editorLink()
improved file name truncation24. 11. 2021
Strings::indexOf()
fixed empty $haystack and negative $nth#271Helpers::clamp()
Validators::isPhpIdentifier()
: Value is always string. (#268)Reflection::expandClassName()
recognizes 'parent'Reflection::isClassKeyword()
,Type::isClassKeyword()
10. 11. 2021
9. 11. 2021
Neon::decodeFile()
Neon::decode()
no longer removes BOM (BC break)Neon::encode()
$flags replaced with parameters8. 11. 2021
Helpers::encodeString()
prints special unicode characters as \u{...}27. 10. 2021
Template::getParameters()
skips $_l $_g27. 10. 2021
27. 10. 2021
27. 10. 2021
27. 10. 2021
27. 10. 2021
26. 10. 2021
26. 10. 2021
Resolver::autowireArguments()
throws an exception when combining a named and positional parameter"#26519. 10. 2021
19. 10. 2021
15. 10. 2021
7. 10. 2021
6. 10. 2021
fireRenderEvents()
addFilter()
getValue()
#2776. 10. 2021
Presenter::run()
saves global state onsendRequest()
Presenter::canonicalize()
uses variadicsComponent::link()
& etc uses variadic parameter2. 10. 2021
29. 9. 2021
$params
in definitionResolver::autowireArguments()
throws an exception when combining a named and positional parameterFactoryDefinition::resolveType()
checks for type compatibilityResolver::completeException()
truncates but does not remove the class nameHelper::ensureClassType()
Reflection::getReturnTypes()
etc24. 9. 2021
getType()
,getReturnType()
: added option $asObject that returns Nette\Utils\TypePhpNamespace::simplifyType()
supports generics like Foo<A, B>
PhpNamespace::unresolveName()
renamed tosimplifyName()
Helpers::unindent()
fixed when level = 0Dumper::format()
placeholder ? must not be followed by \wPhpNamespace::addUse()
added validation19. 9. 2021
Reflection::getReturnType()
&Type::fromReflection()
return tentative type in PHP 8.1getReturnTypes()
,getParameterTypes()
,getPropertyTypes()
are deprecatedArrayList::from()
19. 9. 2021
Reflection::getReturnType()
&Type::fromReflection()
return tentative type in PHP 8.1getReturnTypes()
,getParameterTypes()
,getPropertyTypes()
are deprecatedArrayList::from()
19. 9. 2021
getReturnTypes()
,getParameterTypes()
,getPropertyTypes()
are deprecated17. 9. 2021
17. 9. 2021
autoStart()
to prevent session files from being created when the session id is spoofedset()
,get()
,remove()
clean()
17. 9. 2021
remove()
is not writing operationautoStart()
to prevent session files from being created when the session id is spoofedset()
,get()
,remove()
clean()
17. 9. 2021
autoStart()
to prevent session files from being created when the session id is spoofedremove()
is not writing operationset()
,get()
,remove()
clean()
17. 9. 2021
set()
,get()
,remove()
clean()
25. 8. 2021
25. 8. 2021
User::setExpiration()
second argument accept also bool $clearIdentity25. 8. 2021
25. 8. 2021
25. 8. 2021
destroy()
(#204)25. 8. 2021
25. 8. 2021
25. 8. 2021
24. 8. 2021
TestCase:prepareTestData()
: check that every data provider item is array#43116. 8. 2021
class_exists()
it won't trigger autoloading because it may not work#49716. 8. 2021
5. 7. 2021
fn()
without space2. 6. 2021
2. 6. 2021
2. 6. 2021
2. 6. 2021
31. 5. 2021
27. 4. 2021
Helpers::improveException()
ignores Nette\MemberAccessException#479BlueScreen::formatMessage()
don't highlight \n27. 4. 2021
Helpers::improveException()
ignores Nette\MemberAccessException#479xdebug_get_function_stack()
may trigger warning22. 4. 2021
beginTransaction()
,commit()
&rollBack()
calls are forbidden intransaction()
Explorer::transaction()
call can be nestedExplorer::transaction()
: pass self as a callback argumentHelpers::initializeTracy()
replacescreateDebugPanel()
7. 3. 2021
6. 3. 2021
4. 3. 2021
Form::getValues()
fixed when in validation scope is container3. 3. 2021
2. 3. 2021
1. 3. 2021
28. 2. 2021
24. 2. 2021
24. 2. 2021
24. 2. 2021
Policy::createSafePolicy()
added new function{{ }}
24. 2. 2021
{{ }}
(Release 2.7 is no longer supported)
24. 2. 2021
{{ }}
(Release 2.6 is no longer supported)
24. 2. 2021
{{ }}
(Release 2.5 is no longer supported)
24. 2. 2021
{{ }}
22. 2. 2021
Policy::createSafePolicy()
added new filters and tagsTemplate::render()
restores output buffer#26010. 2. 2021
8. 2. 2021
formatTemplateClass()
refactoringcreateRequest()
#262Form::disableSameSiteProtection()
replaced withallowCrossOrigin()
6. 2. 2021
4. 2. 2021
2. 2. 2021
2. 2. 2021
compatible with PHP 8.0
2. 2. 2021
compatible with PHP 8.0
31. 1. 2021
27. 1. 2021
26. 1. 2021
25. 1. 2021
disableSameSiteProtection()
replaced withallowCrossOrigin()
For the details you can have a look at thediff.
25. 1. 2021
createComponent()
warns on non-presenter componentsnette/forms#147createTemplate()
returns Nette\Bridges\ApplicationLatte (BC break)For the details you can have a look at thediff.
25. 1. 2021
21. 1. 2021
dump()
fixed return mode in CLIFor the details you can have a look at thediff.
21. 1. 2021
Structure::skipDefaults()
allow to skip defaults per structureAnyOf()
must not be emptyAnyOf::firstIsDefault()
Expert::arrayOf($stringType, $keyType)
19. 1. 2021
19. 1. 2021
18. 1. 2021
logout()
steps reorderinInRole()
works with object RoleFor the details you can have a look at thediff.
13. 1. 2021
13. 1. 2021
11. 1. 2021
5. 1. 2021
security fix
5. 1. 2021
requires PHP 7.2
3. 1. 2021
1. 1. 2021
31. 12. 2020
nette-samesite
renamed to_nss
31. 12. 2020
31. 12. 2020
{control x: 1}
31. 12. 2020
30. 12. 2020
18. 12. 2020
17. 12. 2020
16. 12. 2020
quotingPass()
supports named arguments without parenthesesFor the details you can have a look at thediff.
16. 12. 2020
16. 12. 2020
render()
removed dead code after5972e72reformatCode()
appends correctly semicolon after '${""}'For the details you can have a look at thediff.
10. 12. 2020
requires PHP 7.2
1. 12. 2020
compatibility with PHP 8
1. 12. 2020
compatibility with PHP 8
25. 11. 2020
25. 11. 2020
compatible with PHP 8.0
25. 11. 2020
completeException()
appends entity to exception message when type is not knownFor the details you can have a look at thediff.
25. 11. 2020
from()
supports union typesFor the details you can have a look at thediff.
25. 11. 2020
25. 11. 2020
getReturnTypes()
,getParameterTypes()
andgetPropertyTypes()
getReturnType()
,getParameterType()
andgetPropertyType()
throws exception on union typesfromString()
throws UnknownImageFileException when file type is unknownFor the details you can have a look at thediff.
24. 11. 2020
For the details you can have a look at thediff.
24. 11. 2020
For the details you can have a look at thediff.
16. 11. 2020
rollback()
For the details you can have a look at thediff.
16. 11. 2020
{include block from file}
|sort
,|clamp
& custom functionclamp()
{ifchanged}
{skipIf}
{foreach} {else} {/foreach}
{try} & {else} & {rollback}
{embed file.latte}
{block local name}
&{define local name}
{case 1, 2, 3}
accepts more than one option{include block foo}
and{include file foo}
{ifset block foo}
{ifset #$blockName}
$iterator->parent
, returns the iterator surrounding the current one$iterator->counter0
, returns 0-indexed counter??->
6. 11. 2020
compatible with PHP 8.0
6. 11. 2020
compatible with PHP 8.0
6. 11. 2020
compatible with PHP 8.0
6. 11. 2020
compatibility with PHP 8.0
6. 11. 2020
For the details you can have a look at thediff.
5. 11. 2020
5. 11. 2020
4. 11. 2020
2. 11. 2020
toggle()
toggle()
even during initialization (possible BC break)hasOwnProperty()
checkvalidateControl()
#252For the details you can have a look at thediff.
2. 11. 2020
touch()
expects parameter 2 to be int, null given'#403For the details you can have a look at thediff.
2. 11. 2020
phpinfo()
returns text in CLI#444For the details you can have a look at thediff.
2. 11. 2020
@Tracy\Bar
nette/di#245hash()
: Password can not be empty. (#47)For the details you can have a look at thediff.
2. 11. 2020
For the details you can have a look at thediff.
2. 11. 2020
getImageFileExtension()
getUntrustedName()
as alias forgetName()
getimagesize()
returns false (#184)initCookie()
sends cookie nette-samesite only if doesn't existFor the details you can have a look at thediff.
2. 11. 2020
Supports all new PHP 8 features!
2. 11. 2020
encodeHeader()
->encodeSequence()
createAttachment()
when content is provided, file name is not changedcreateAttachment()
escapes " in filenameFor the details you can have a look at thediff.
2. 11. 2020
@Tracy\BlueScreen
nette/di#245For the details you can have a look at thediff.
2. 11. 2020
#[Persistent] & [CrossOrigin]#
For the details you can have a look at thediff.
7. 10. 2020
security fix
5. 10. 2020
security fix
5. 10. 2020
security fix
29. 9. 2020
29. 9. 2020
15. 9. 2020
getRealPath()
can return false (in PHAR)For the details you can have a look at thediff.
27. 8. 2020
For the details you can have a look at thediff.
25. 8. 2020
getModule()
#264withReferenceUrl()
For the details you can have a look at thediff.
13. 8. 2020
bool()
,int()
,float()
,string()
Helpers::escape()
For the details you can have a look at thediff.
7. 8. 2020
renameKey()
fixed incorrect replacement for existing new keys#230renameKey()
returns true if $oldKey was foundtoKey()
isBuiltinType()
added PHP 8 types mixed & falsegetReturnType()
fixed for functionsFor the details you can have a look at thediff.
3. 8. 2020
with()
(#410)touch()
expects parameter 2 to be int, null given'#403For the details you can have a look at thediff.
3. 8. 2020
getTime()
For the details you can have a look at thediff.
31. 7. 2020
28. 7. 2020
For the details you can have a look at thediff.
16. 7. 2020
13. 7. 2020
13. 7. 2020
25. 6. 2020
unindent()
because requires too much memoryextractBody()
replaces multi-line & HEREDOC strings with single-lineFor the details you can have a look at thediff.
9. 6. 2020
9. 6. 2020
For the details you can have a look at thediff.
6. 6. 2020
validateNumeric()
accepts unsigned integer#246getIterator()
moves BLANK before FILLED#233getToggleStates()
synced with netteForms.js toggleControltoggleControl()
, synced withvalidateControl()
validate()
$emptyOptional is always false in BLANK conditionFor the details you can have a look at thediff.
27. 5. 2020
27. 5. 2020
26. 5. 2020
26. 5. 2020
For the details you can have a look at thediff.
17. 5. 2020
<!-- in <script>
#421For the details you can have a look at thediff.
17. 5. 2020
17. 5. 2020
15. 5. 2020
findByType()
getByName()
as alias forgetService()
For the details you can have a look at thediff.
12. 5. 2020
For the details you can have a look at thediff.
21. 4. 2020
For the details you can have a look at thediff.
20. 4. 2020
For the details you can have a look at thediff.
20. 4. 2020
For the details you can have a look at thediff.
20. 4. 2020
setOptionAttribute()
validateInteger()
returns false when integer is too bigdata-nette-rules
#243getLabel()
removed return type void#241For the details you can have a look at thediff.
11. 4. 2020
This is the last 2.6.x release.
guessClassFile()
fixedhighlightPhp()
removed part of code after__halt_compiler()
For the details you can have a look at thediff.
11. 4. 2020
formatMessage()
clickable methods & fileshighlightPhp()
removed part of code after__halt_compiler()
exceptionHandler()
evaluates template in closureexceptionHandler()
sends Content-Type only when neededguessClassFile()
fixedformatMessage()
For the details you can have a look at thediff.
1. 4. 2020
<script type="module">
is also javascript context (#220)getTemplateClass()
added functions to cache key@function
&@filter
For the details you can have a look at thediff.
31. 3. 2020
25. 3. 2020
16. 3. 2020
For the details you can have a look at thediff.
10. 3. 2020
For the details you can have a look at thediff.
9. 3. 2020
{varPrint}
,{varType}
,{templatePrint}
,{templateType}
{define block type $var}
{var type $var}
and{default type $var}
|batch
$obj->$var?
and$obj::$var?
<div n:spaceless>
{var xx}
and{var $xx => ...}
(BC break)6. 3. 2020
6. 3. 2020
4. 3. 2020
4. 3. 2020
23. 2. 2020
For the details you can have a look at thediff.
23. 2. 2020
For the details you can have a look at thediff.
20. 2. 2020
12. 2. 2020
9. 2. 2020
dumpSql()
for bool parameters (#251)For the details you can have a look at thediff.
9. 2. 2020
9. 2. 2020
getParameterDefaultValue()
supports parent::CONSTnette/di#231typeToExtension()
&typeToMimeType()
getType()
returns ReflectionNamedTypeimagecrop()
workaround because it loses transparency on ubuntu on Github ActionshtmlToText()
decodes 'For the details you can have a look at thediff.
22. 1. 2020
restoreRequest()
redirects on GET requestisLinkCurrent()
andisModuleCurrent()
isModuleCurrent()
#240 (#243)For the details you can have a look at thediff.
20. 1. 2020
initialize()
methodFor the details you can have a look at thediff.
20. 1. 2020
dumpArray()
hides keys only in non-associative arrays#51For the details you can have a look at thediff.
14. 1. 2020
14. 1. 2020
For the details you can have a look at thediff.
6. 1. 2020
5. 1. 2020
addFunction()
for Latte 2.6injectPrimary()
params are required because $httpRequest is required. (#239)For the details you can have a look at thediff.
3. 1. 2020
$latte->addFunction()
$var?->prop?->elem[1]?->call()?->item
3. 1. 2020
2. 1. 2020
This is the last 2.6.x release.
error_get_last()
when $logSeverity is usedFor the details you can have a look at thediff.
2. 1. 2020
setNullable()
andaddFilter()
#171addRule()
checks upload_max_filesize limitremoveRule()
setHtmlAttribute()
formatMessage()
label is translated using form translator (#237)For the details you can have a look at thediff.
27. 12. 2019
27. 12. 2019
27. 12. 2019
:
when it follows after'"
to improve JSON compatibility (syntax BC break)-
or:
followed by=[{(
(syntax BC break)on
/off
(#41)!
(#42)27. 12. 2019
autowireArguments()
fixed counting optional argsautowireArguments()
refactoring, addedautowireArgument()
, Resolver|Container replaced with callbackFor the details you can have a look at thediff.
15. 12. 2019
15. 12. 2019
error_get_last()
when $logSeverity is usedexceptionHandler()
exceptionHandler()
when connection is aborted, log exceptioncapture()
For the details you can have a look at thediff.
20. 11. 2019
19. 11. 2019
19. 11. 2019
For the details you can have a look at thediff.
19. 11. 2019
For the details you can have a look at thediff.
19. 11. 2019
19. 11. 2019
19. 11. 2019
19. 11. 2019
expand()
fixed expansion of dynamic parametersFor the details you can have a look at thediff.
19. 11. 2019
19. 11. 2019
19. 11. 2019
__toString()
is allowed since PHP 7.4For the details you can have a look at thediff.
19. 11. 2019
2. 11. 2019
31. 10. 2019
31. 10. 2019
parseQuery()
accepts separator ;For the details you can have a look at thediff.
22. 10. 2019
detectDebugMode()
workaround for PHP bug #77722For the details you can have a look at thediff.
21. 10. 2019
disableSameSiteProtection()
getPresenterIfExists()
hasPresenter()
__toString()
is allowed since PHP 7.4For the details you can have a look at thediff.
21. 10. 2019
21. 10. 2019
imagecrop()
#202__toString()
is allowed since PHP 7.4strlen()
for better performance. (#193)For the details you can have a look at thediff.
24. 9. 2019
For the details you can have a look at thediff.
24. 9. 2019
<pre>
and<div>
.errorHandler()
argument $context can be null#379For the details you can have a look at thediff.
24. 9. 2019
13. 9. 2019
13. 9. 2019
11. 8. 2019
Assert::notNull()
FileMutator
fixes7. 8. 2019
create()
(#200)For the details you can have a look at thediff.
16. 7. 2019
isExpired()
returns true when file doesn't exist#186For the details you can have a look at thediff.
16. 7. 2019
8. 7. 2019
redirect()
removed $code from signature#220#221withoutUserInfo()
(nette/http#160)For the details you can have a look at thediff.
8. 7. 2019
getBelongsToReference()
return value fixFor the details you can have a look at thediff.
8. 7. 2019
getLabel()
IHtmlString are not translated (#225)translate()
ignores IHtmlStringFor the details you can have a look at thediff.
8. 7. 2019
8. 7. 2019
withoutUserInfo()
For the details you can have a look at thediff.
5. 7. 2019
18. 6. 2019
improveException()
do not improve already improved errorsFor the details you can have a look at thediff.
3. 6. 2019
DKIM can be configured via config file:
mail:dkim:domain: ...selector: ...privateKey: private.key.filepassPhrase: ...testMode: ...
3. 6. 2019
3. 4. 2019
3. 4. 2019
tags
andparameters
3. 4. 2019
nette.presenter
replaced by findByType()3. 4. 2019
For the details you can have a look at thediff.
3. 4. 2019
session_status()
for better cooperation with the session started outside nettenette/forms#214[]
in REMOTE_ADDR#152escapeHtml()
For the details you can have a look at thediff.
3. 4. 2019
Handy library for validating data structures against a given Schema is here! :-)
3. 4. 2019
apache_request_headers()
is not availableimproveException()
handles error 'Call to undefined method parent::xxx()
'getSource()
improved escaping of cmdline argumentsFor the details you can have a look at thediff.
26. 3. 2019
getUseStatements()
throw exceptions on anonymous classgetPropertyType()
(for PHP 7.4)?nullable
typestoObject()
error_get_last()
#183For the details you can have a look at thediff.
26. 3. 2019
25. 3. 2019
13. 3. 2019
This is the last 2.5.x release.
improveException()
handles error 'Call to undefined method parent::xxx()
'For the details you can have a look at thediff.
13. 3. 2019
11. 3. 2019
--watch
mode recovers from errors (e.g. missing file)FileMutator
(duringscandir()
or recursivemkdir()
)Assert::noError()
throws exception when called with more than one parameterExpect
for complex assertions formulation (#398)Helper::purge()
protection to not purge root directory (#392)Runner::addPhpIniOption()
to be able set PHP INI option from--setup
scriptFor more informationsee documentation andchangelog.
8. 3. 2019
1. 3. 2019
refresh()
For the details you can have a look at thediff.
1. 3. 2019
<!-- in file:line -->
at the top of pageFor the details you can have a look at thediff.
28. 2. 2019
28. 2. 2019
?array
; replace FALSE with[]
(BC break)28. 2. 2019
nette/routing was taken out nette/application
Router::match(Nette\Http\IRequest $httpRequest): ?array
Router::constructUrl(array $params, Nette\Http\UrlScript $refUrl): ?string
28. 2. 2019
26. 2. 2019
20. 2. 2019
{use} {status} {?...} |safeurl |nl2br shortNoEscape
20. 2. 2019
20. 2. 2019
20. 2. 2019
::int
20. 2. 2019
20. 2. 2019
20. 2. 2019
20. 2. 2019
17. 2. 2019
renderToFile()
returns bool to indicate if file was written by current process (#325)For the details you can have a look at thediff.
17. 2. 2019
<div id=tracy-debug>
into BODY#335For the details you can have a look at thediff.
5. 2. 2019
DeprecatedNette\Utils\Tokenizer
&TokenIterator
and added newNette\Tokenizer\Tokenizer
andNette\Tokenizer\Stream
that represents tokens as objectsNette\Tokenizer\Token
instead of arrays.
5. 2. 2019
30. 1. 2019
loadDefinitions()
sorts definitions only if neededvalidateConfig()
prints 'section › value' instead of section.value in exception messageFor the details you can have a look at thediff.
29. 11. 2018
For the details you can have a look at thediff.
29. 11. 2018
26. 11. 2018
getColumnTypes()
to avoid excessive number of queries#212quote()
throws exception on error (related to#202)For the details you can have a look at thediff.
26. 11. 2018
23. 11. 2018
23. 11. 2018
For the details you can have a look at thediff.
3. 11. 2018
<base href>
(#321)For the details you can have a look at thediff.
16. 10. 2018
fetchFields()
bindValue()
(possible BC break)quote()
returns false for ODBC driver#202getLastQueryString()
For the details you can have a look at thediff.
10. 10. 2018
Minimal PHP version since this release is 7.1. That's actually the main reason for this release.
Internal code improvements
Bypass finals respectsfinal
as a literal
Added notification when empty code coverage report data
The--coverage-src
option is repeatable (#388)
For more informationsee documentation andchangelog.
24. 9. 2018
improveException()
supports Nette\MemberAccessExceptiondumpe()
: don't callexit()
in production modeFor the details you can have a look at thediff.
24. 9. 2018
This is the last 2.4.x release.
dumpe()
: don't callexit()
in production modeFor the details you can have a look at thediff.
18. 9. 2018
18. 9. 2018
token_get_all()
uses flag TOKEN_PARSEFor the details you can have a look at thediff.
18. 9. 2018
This release marks the end of life of the nette/utils 2.4 series
For the details you can have a look at thediff.
16. 9. 2018
For the details you can have a look at thediff.
3. 9. 2018
setCookie()
supports SameSiteremoveDuplicateCookies()
#139For the details you can have a look at thediff.
29. 8. 2018
By default, RobotLoader reports errors in PHP files by throwing exceptionParseError
(since PHP 7.0). It can be disabled via$loader->reportParseErrors(false)
.
For the details you can have a look at thediff.
13. 8. 2018
13. 8. 2018
9. 8. 2018
New features
Printer
, code from __toString moved to PrinterPsrPrinter
, compatible with PSR-2 and PSR-12 [Closes#30]PhpNamespace::add()
[Closes#27]NameAware::cloneWithName()
FunctionLike::removeParameter()
&ClassType::removeMethod()
,removeProperty()
,removeConstant()
ClassType::addMember()
[Closes#35]VISIBILITY_*
constantsChanges
PhpNamespace::add*()
- removed checking whether class already exists - to be consistent with the rest of package (BC break)ClassType::getNamespace()
is softly deprecated. An object can be in multiple namespaces.For the details you can have a look at thediff.
9. 8. 2018
9. 8. 2018
3. 7. 2018
Please make a donation athttps://nette.org/donate
autoHideLabels()
after070309dFor the details you can have a look at thediff.
3. 7. 2018
28. 6. 2018
For the details you can have a look at thediff.
28. 6. 2018
28. 6. 2018
For the details you can have a look at thediff.
28. 6. 2018
28. 6. 2018
completeStatement()
improved error messageautowireArguments()
improved error messageFor the details you can have a look at thediff.
7. 6. 2018
For more informationsee documentation andchangelog.
3. 6. 2018
2. 6. 2018
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 informationsee documentation andchangelog.
1. 6. 2018
detectTypes()
added support for TIMESTAMP WITH TIME ZONE in PostgreSQL#163 (#198)For the details you can have a look at thediff.
25. 5. 2018
17. 5. 2018
Please make a donation athttps://nette.org/donate
netteMailer
, when enabled Tracy send emails via Nette mailer#299netteMailer
is enabled by default<div><div>...
17. 5. 2018
For the details you can have a look at thediff.
17. 5. 2018
For the details you can have a look at thediff.
17. 5. 2018
For the details you can have a look at thediff.
17. 5. 2018
error()
moved to ComponentFor the details you can have a look at thediff.
4. 5. 2018
__debugInfo()
magic method via Dumper::DEBUGINFO option#135#282For the details you can have a look at thediff.
4. 5. 2018
26. 4. 2018
tabsToSpaces()
For the details you can have a look at thediff.
26. 4. 2018
tabsToSpaces()
For the details you can have a look at thediff.
26. 4. 2018
This is the last v2.x release.
tabsToSpaces()
For the details you can have a look at thediff.
14. 4. 2018
For the details you can have a look at thediff.
2. 4. 2018
setFactory()
instead of misusedsetClass()
For the details you can have a look at thediff.
2. 4. 2018
2. 4. 2018
2. 4. 2018
For the details you can have a look at thediff.
23. 3. 2018
Please make a donation athttps://nette.org/donate
For the details you can have a look at thediff.
21. 3. 2018
20. 3. 2018
15. 3. 2018
7. 3. 2018
checkDefaultValue()
as replacement for $checkAllowedValues (#151)validatePattern()
for FileUpload uses file name (#175)For the details you can have a look at thediff.
7. 3. 2018
28. 2. 2018
<small>
For the details you can have a look at thediff.
17. 2. 2018
7. 2. 2018
For more informationsee documentation andchangelog.
6. 2. 2018
rename()
fix renaming file/directory if only case changes (#155)removeAttributes()
- removing multiple attributes (#161)For the details you can have a look at thediff.
6. 2. 2018
For the details you can have a look at thediff.
6. 2. 2018
For the details you can have a look at thediff.
6. 2. 2018
For the details you can have a look at thediff.
6. 2. 2018
6. 2. 2018
Please make a donation athttps://nette.org/donate
<style>
For the details you can have a look at thediff.
6. 2. 2018
6. 2. 2018
renderToString()
For the details you can have a look at thediff.
31. 1. 2018
dumpe()
, shortcut fordump()
&exit()
dispatch()
is ignored in CLIFor the details you can have a look at thediff.
5. 10. 2017
8. 9. 2017
6. 9. 2017
6. 9. 2017
setType()
&getType()
as a future replacements forsetClass()
andgetClass()
For the details you can have a look at thediff.
29. 8. 2017
addText()
accepts Html assetText()
doesFor the details you can have a look at thediff.
29. 8. 2017
29. 8. 2017
each()
deprecation notice in PHP 7.2For the details you can have a look at thediff.
29. 8. 2017
addError()
by default translates messages (BC break)reset()
For the details you can have a look at thediff.
29. 8. 2017
29. 8. 2017
29. 8. 2017
saveState()
fixed compatibility with PHP 7.2For the details you can have a look at thediff.
22. 8. 2017
*Test.php
as a test files too-C
option to use system-wide php.ini--temp
option@phpExtension
test file annotation%w%
and%%
modifiers for Assert::match()For more informationsee documentation andchangelog.
16. 8. 2017
Debugger::renderLoader()
for faster client-side initialization<div id=tracy-debug>
is created by JSFor the details you can have a look at thediff.
16. 8. 2017
27. 7. 2017
20. 7. 2017
16. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
each()
replaced withcurrent()
andnext()
For the details you can have a look at thediff.
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
renderErrors()
fromrenderPair()
which was caused by#145 (->form = NULL) (#150)remove()
andremoveOrphans()
#155For the details you can have a look at thediff.
14. 7. 2017
14. 7. 2017
class_alias()
#156For the details you can have a look at thediff.
14. 7. 2017
fetchPairs()
supports floats in keysgetColumns()
fix regexp for autoincrement recognition (#168)For the details you can have a look at thediff.
14. 7. 2017
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
For the details you can have a look at thediff.
14. 7. 2017
requestToUrl()
, taken out fromcreateRequest()
For the details you can have a look at thediff.
29. 5. 2017
17. 5. 2017
11. 5. 2017
9. 5. 2017
isInRange()
works with DateTimeisInRange()
return FALSE when both limits are NULLFor the details you can have a look at thediff.
30. 3. 2017
isInRange()
compares strings as strings and numbers as numbers (BC break)nette/forms#146isInRange()
ignores NULLgetReturnType()
&getParameterType()
supports 'parent'For the details you can have a look at thediff.
29. 3. 2017
validate()
" -getValue()
can be called before validationFor the details you can have a look at thediff.
18. 3. 2017
isNamespaceIdentifier()
added $allowLeadingSlashisNamespace()
->isNamespaceIdentifier()
setUses()
checks argument typeFor the details you can have a look at thediff.
17. 3. 2017
getByType()
added argument $throwisExpired()
can alter $phpFiles modification times#144getReturnType()
ignores 'object' and 'mixed'create_function()
replaced witheval()
For the details you can have a look at thediff.
17. 3. 2017
17. 3. 2017
17. 3. 2017
14. 3. 2017
\?
means?
...?
is substitution for?*
For the details you can have a look at thediff.
24. 2. 2017
For the details you can have a look at thediff.
21. 2. 2017
21. 2. 2017
19. 2. 2017
addDynamicParameters()
For the details you can have a look at thediff.
19. 2. 2017
addExtension()
allows empty nameeach()
replaced withcurrent()
andnext()
For the details you can have a look at thediff.
2. 2. 2017
getInsertId()
is normalized to stringformatLike()
usesquote()
For the details you can have a look at thediff.
2. 2. 2017
getHttpCode()
combineArgs()
throws InvalidArgumentException instead BadRequestException when incompatible type is object"For the details you can have a look at thediff.
2. 2. 2017
2. 2. 2017
2. 2. 2017
29. 1. 2017
<body>
For the details you can have a look at thediff.
19. 1. 2017
setCode()
added $reasonFor the details you can have a look at thediff.
19. 1. 2017
normalizePath()
not forget leading ../#138#139http_response_code()
related tonette/http#113For the details you can have a look at thediff.
19. 1. 2017
For the details you can have a look at thediff.
18. 1. 2017
For the details you can have a look at thediff.
15. 1. 2017
getDefinitionByType()
method added#130 (#137)literal()
can have argumentsgetParameterDefaultValue()
to prevent Fatal Error when invalid constant is usedFor the details you can have a look at thediff.
15. 1. 2017
15. 1. 2017
15. 1. 2017
For the details you can have a look at thediff.
15. 1. 2017
evalScripts()
uses createElement('script') instead ofeval()
getResponseHeader()
&getAllResponseHeaders()
replaced withaddEventListener()
For the details you can have a look at thediff.
11. 1. 2017
For the details you can have a look at thediff.
2. 1. 2017
setTempDirectory()
, should be used instead ofsetCacheStorage()
register()
, not inrebuild()
For the details you can have a look at thediff.
23. 12. 2016
process()
is public#134For the details you can have a look at thediff.
21. 12. 2016
21. 12. 2016
20. 12. 2016
setAttribute()
andsetType()
aliased tosetHtmlAttribute()
andsetHtmlType()
getLabelPart()
uses $itemLabel instead of $labelFor the details you can have a look at thediff.
20. 12. 2016
fromParts()
from()
supports microsecondsevery()
,some()
&map()
#36everyIs()
#123For the details you can have a look at thediff.
20. 12. 2016
20. 12. 2016
constructUrl()
: split of module and presenter moved before global filter (#167)constructUrl()
fixed global filter on presenter name (#161)createInitialRequest()
failed, thx to@vlastavesely#163addFilter()
returns $thisFor the details you can have a look at thediff.
19. 12. 2016
This release marks the end of life of the nette/utils 2.3 series
read()
(#124)For the details you can have a look at thediff.
19. 12. 2016
For the details you can have a look at thediff.
19. 12. 2016
removeExpiration()
fixed (#111)For the details you can have a look at thediff.
19. 12. 2016
19. 12. 2016
19. 12. 2016
10. 12. 2016
improveException()
removes namespace from function name because is confusing (related to PHP issue 73049)For the details you can have a look at thediff.
8. 11. 2016
26. 10. 2016
setAutoRefresh()
rebuildCallback()
For the details you can have a look at thediff.
18. 10. 2016
18. 10. 2016
18. 10. 2016
For the details you can have a look at thediff.
18. 10. 2016
For the details you can have a look at thediff.
18. 10. 2016
30. 9. 2016
30. 9. 2016
encodeString()
optimization, slow regexp is used for shortened string#223getExceptionFile()
ignores exception argumentserrorHandler()
calls Helpers::improveException()
before ErrorException is loggedFor the details you can have a look at thediff.
27. 9. 2016
escapeHtmlAttr()
prevents double escaping of Latte\Runtime\HtmlFor the details you can have a look at thediff.
27. 9. 2016
27. 9. 2016
combineArgs()
throws InvalidArgumentException instead BadRequestException when incompatible type is objectstrpos()
: Offset not contained in string" (#154)For the details you can have a look at thediff.
27. 9. 2016
27. 9. 2016
range()
to validate min/max (#136)validateForm()
#133validate()
processes all conditionsFor the details you can have a look at thediff.
27. 9. 2016
autowireArguments()
can handle PHP 7.1 nullable typesgetReturnType()
can handle PHP 7.1 nullable typesgetParameterType()
can handle PHP 7.1 nullable types (#126)getParameterType()
supports type 'self'getInjectMethods()
correct order of methods in traitsgetParameterType()
in PHP < 7#124For the details you can have a look at thediff.
31. 7. 2016
enable()
anddispatch()
throws exception when output has been sentFor the details you can have a look at thediff.
31. 7. 2016
31. 7. 2016
31. 7. 2016
load()
allows swapped argumentsFor the details you can have a look at thediff.
31. 7. 2016
31. 7. 2016
parseAnnotation()
regexp fixFor the details you can have a look at thediff.
31. 7. 2016
For the details you can have a look at thediff.
31. 7. 2016
31. 7. 2016
For the details you can have a look at thediff.
31. 7. 2016
For the details you can have a look at thediff.
9. 7. 2016
addInteger()
is nullablesetNullable()
validate()
getRenderedValue()
addRule()
instead ofgetControl()
(is consistent with TextBase)For the details you can have a look at thediff.
30. 6. 2016
For the details you can have a look at thediff.
30. 6. 2016
setRequired(TRUE | FALSE)
addEmail()
&addInteger()
isMethod()
,beforeRender()
&fireRenderEvents()
and event$onRender
addOptionAttributes()
isOk()
isFilled()
returns TRUE (BC break)isOK()
<div>
to noneForm::addProtection()
is always the first itemenableAutoOptionalMode()
netteForms.js:
showFormErrors()
#65Latte:
{label}
is AUTO_EMPTY<tag n:name>
always usesgetControlPart()
andgetLabelPart()
, removed method_exists checking (BC break)For the details you can have a look at thediff.
30. 6. 2016
28. 6. 2016
page()
for $page < 1 returns no rowsHelpers::detectType()
uses more strict type patternsPgSqlDriver::getTables()
returns materialized views (#136)SqlsrvDriver::formatDateTime()
: format datetime by ISO 8601For the details you can have a look at thediff.
27. 6. 2016
<module>
]warmupCache()
redirectPermanent()
deprecated, changed:
argsToParams()
andsaveState()
now distinguish between NULL and FALSE#107convertType()
objects can be passed only to parameters without array or scalar type (without array / scalar default value) (BC break)validateControl()
&invalidateControl()
, Presenter::backlink()
and Template::registerHelper()
trigger E_USER_DEPRECATEDterminate()
For the details you can have a look at thediff.
27. 6. 2016
($var|modifiers)
#59$entry in [item1, item2]
#27{define}
accepts parameters{import 'file'}
{spaceless}
{while} ... {/while $cond}
|stripHtml
|linebreaks
|length
for strings, arrays, Countable and Iterator#103{syntax off}
can be ended with{/syntax}
Engine::addProvider()
, runtime dependencies and options for macrosSnippetDriver & ISnippetBridge
, snippet refactoring<=> ** ...
{contentType}
do not send header when is rendered to string or included#106{capture}
creates Latte\Runtime\Html in HTML content type (BC break)IMacro::AUTO_EMPTY and IMacro::AUTO_CLOSE
|checkurl & |nocheck
as aliases for|safeurl & |nosafeurl
MacroNode::$innerContent
nette/nette#1361Engine::loadTemplate()
invalidates opcode cachedeprecated, changed:
<? ... ?>
is deprecated{includeblock}
is deprecated{? ...}
is replaced with{php ...}
{use}
and{status}
are deprecated|nl2br
is deprecated<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#71getFilters()
returns only name of filtersgetUniqueId()
, changed interfacegetChildName()
⇒getReferredName()
BC break, changed interfaceFor the details you can have a look at thediff.
27. 6. 2016
$prop = value
and'$prop[]' = value
@extension
syntax for referencing services from a same extension (#85)deprecated, changed:
parseServices()
andparseService()
renamed toloadDefinition()
andloadDefinitions()
(#112)setImplementType()
andgetImplementType()
renamed tosetImplementMode()
&getImplementMode()
load()
swapped arguments (BC break)setClassName()
&getClassName()
moved to Compiler (BC break)setEntity()
is deprecatedFor the details you can have a look at thediff.
25. 6. 2016
setExpiration()
removes header Pragmamove()
do not suppress system warnings#82For the details you can have a look at thediff.
25. 6. 2016
25. 6. 2016
For the details you can have a look at thediff.
25. 6. 2016
setTimeZone()
%consoleMode%
to some extensionsFor the details you can have a look at thediff.
17. 6. 2016
17. 6. 2016
loadContainer()
fromcreateContainer()
addConfig()
sections are deprecated (BC break)For the details you can have a look at thediff.
17. 6. 2016
For the details you can have a look at thediff.
17. 6. 2016
For the details you can have a look at thediff.
17. 6. 2016
For the details you can have a look at thediff.
17. 6. 2016
Container::getComponent()
optimizationComponent::__construct()
parameters $parent & $name are deprecatedFor the details you can have a look at thediff.
17. 6. 2016
setClassName()
For the details you can have a look at thediff.
17. 6. 2016
For the details you can have a look at thediff.
17. 6. 2016
setExpiration()
removes header PragmaFor the details you can have a look at thediff.
17. 6. 2016
17. 6. 2016
addDocument()
,setDocuments()
andgetDocuments()
and replaced withaddComment()
,setComment()
andgetComment()
For the details you can have a look at thediff.
17. 6. 2016
dump()
support for infinite floatsaddComment()
,setComment()
andgetComment()
For the details you can have a look at thediff.
17. 6. 2016
AnnotationsParser::parsePhp()
Return also classes without annotationsFor the details you can have a look at thediff.
17. 6. 2016
For the details you can have a look at thediff.
17. 6. 2016
For the details you can have a look at thediff.
17. 6. 2016
For the details you can have a look at thediff.
17. 6. 2016
hash()
removed option 'salt' (BC break)For the details you can have a look at thediff.
17. 6. 2016
renderToFile()
#130dispatch()
starts session if is not startedbdump()
For the details you can have a look at thediff.
17. 6. 2016
Nette\SmartObject
, it differs fromNette\Object
:Nette\StaticClass
add()
toaddHtml()
; addedaddText()
(#111)place()
preserves the alpha channelrandom()
renamed toRandom::generate()
random_bytes()
on PHP 7read()
prepend()
encode()
uses by default JSON_PRESERVE_ZERO_FRACTION (BC break)#89For the details you can have a look at thediff.
17. 6. 2016
31. 5. 2016
For the details you can have a look at thediff.
31. 5. 2016
isOK()
exportRules()
skips empty branchesFor the details you can have a look at thediff.
31. 5. 2016
30. 5. 2016
<pre>
<script>
or<textarea>
<=>
**
...
For the details you can have a look at thediff.
30. 5. 2016
3. 5. 2016
13. 4. 2016
~2.3.x
warmupCache()
__toString()
prints better error messageFor the details you can have a look at:application,di,http +previous,mail,reflection,safe-stream,utils,latte,tracy.
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.
~2.2.x
13. 4. 2016
10. 4. 2016
ob_start()
is protected against flush when error occursFor the details you can have a look at thediff.
6. 4. 2016
warmupCache()
For the details you can have a look at thediff.
1. 4. 2016
expandClassName()
added support for@return $thisparseUseStatemenets()
: class in use can contain leading \#97ob_start()
is protected against flush when error occursFor the details you can have a look at thediff.
1. 4. 2016
1. 4. 2016
1. 4. 2016
parsePhp()
Return also classes without annotationsFor the details you can have a look at thediff.
1. 4. 2016
1. 4. 2016
19. 3. 2016
For more informationsee documentation andchangelog.
29. 2. 2016
22. 2. 2016
Application
argsToParams()
computes default values for mandatory parameters with built-in typehint<module>
]Caching
DI
getServiceType()
removeAlias()
removes aliasesautowireArguments()
better error message for PHP7 and class name case mismatchForms
exportRules()
correctly exports empty arraysHTTP
Neon
Latte
parseMacroTag()
fixed extraction of modifiertouch()
failsTracy
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 theend of active support of the Nette 2.3 series. For one year only critical issues will be fixed.
22. 2. 2016
22. 2. 2016
22. 2. 2016
For the details you can have a look at thediff.
19. 2. 2016
19. 2. 2016
19. 2. 2016
8. 2. 2016
<module>
]combineArgs()
throws exception when parameter has scalar type hint, no default value and argument is missingconvertType()
NULLs are not allowedFor the details you can have a look at thediff.
8. 2. 2016
For more informationsee documentation andchangelog.
20. 1. 2016
20. 1. 2016
parseMacroTag()
fixed extraction of modifiernette/nette#1541For the details you can have a look at thediff.
20. 1. 2016
For the details you can have a look at thediff.
20. 1. 2016
@property
phpDocFor the details you can have a look at thediff.
20. 1. 2016
exportRules()
correctly exports empty arrays#102For the details you can have a look at thediff.
20. 1. 2016
For the details you can have a look at thediff.
20. 1. 2016
getServiceType()
removeAlias()
removes aliasescheckCase()
checks interfaces tooautowireArguments()
better error message for PHP7 and class name case mismatchFor the details you can have a look at thediff.
20. 1. 2016
argsToParams()
computes default values for mandatory parameters with built-in typehintFor the details you can have a look at thediff.
3. 12. 2015
3. 12. 2015
insert()
fixed delimiting of FQN sequence name like 'aaa.bbb'nette/database#108toAscii()
optimizationgetSuggestion()
better balance, replacement of prefix get|set|add|has|is costs 20invokeSafe()
removes function name also with arguments from error messageFor the details you can have a look at:application,bootstrap,caching,database,deprecated,di,forms,mail,php-generator,utils,latte +previous,tracy +previous.
3. 12. 2015
ControlGroup::add()
validation fixed; typosrandom_int()
on PHP 7microtime()
,str_shuffle()
andlcg_value()
when cryptographically strong source is usedgetClass()
class name can contain control characters in PHP 7editorLink()
improved way how file names are shortenedFor the details you can have a look at:application,caching,forms,mail,neon,utils,latte +previous,tracy.
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.
substr_count()
error on empty stringsave()
handles Throwable errorsFor the details you can have a look at thediff.
3. 12. 2015
For the details you can have a look at thediff.
3. 12. 2015
3. 12. 2015
getClass()
class name can contain control characters in PHP 7editorLink()
improved way how file names are shortenedFor the details you can have a look at thediff.
3. 12. 2015
invokeSafe()
removes function name also with arguments from error messageinvokeSafe()
workaround for HHVM bugfacebook/hhvm#4625invokeSafe()
handles Throwable errorsrandom_int()
on PHP 7microtime()
,str_shuffle()
andlcg_value()
when cryptographically strong source is usedFor the details you can have a look at thediff.
3. 12. 2015
3. 12. 2015
For the details you can have a look at thediff.
3. 12. 2015
add()
validation fixed; typosFor the details you can have a look at thediff.
3. 12. 2015
3. 12. 2015
For the details you can have a look at thediff.
2. 12. 2015
2. 12. 2015
For the details you can have a look at thediff.
2. 12. 2015
For the details you can have a look at thediff.
30. 11. 2015
For the details you can have a look at thediff.
30. 11. 2015
30. 11. 2015
For the details you can have a look at thediff.
30. 11. 2015
30. 11. 2015
For the details you can have a look at thediff.
30. 11. 2015
30. 11. 2015
getSuggestion()
better balance. Replacement is more expensive than insertion/deletion.For the details you can have a look at thediff.
30. 11. 2015
toAscii()
optimizationgetSuggestion()
better balance, replacement of prefix get|set|add|has|is costs 20getSuggestion()
better balance. Replacement is more expensive than insertion/deletion.invokeSafe()
handles Throwable errorsinvokeSafe()
removes function name also with arguments from error messageFor the details you can have a look at thediff.
30. 11. 2015
getSuggestion()
better balance. Replacement is more expensive than insertion/deletion.For the details you can have a look at thediff.
28. 10. 2015
<title>
improveException()
ignores namespace before functionFor the details you can have a look at thediff.
26. 10. 2015
This release fixes issue of TestCase::tearDown() double calling:
For more informationsee documentation andchangelog.
19. 10. 2015
noError()
assertion#250@throws
is applied to testMethods() only, not tosetUp()
nortearDown()
(BC break)#238setUp()
andtearDown()
exceptionstearDown()
is called even on error in test method#254#255Dumper::toPhp()
better support for anonymous classes and ClosuresFor more informationsee documentation andchangelog.
12. 10. 2015
„Did you mean?“ feature
Application
PresenterComponentReflection::convertType()
support for all built-in PHP typehintsPresenterComponentReflection::convertType()
converts NULL to appropriate type@property
phpDocDatabase
applyLimit()
throws exception for negative values (but not when you usepage()
)applyLimit()
: supports keywords DISTINCT and ALL after SELECTDI
dump()
for data with simple Nette\DI\StatementForms
PhpGenerator
unresolveName()
supports for built-in types and PHP 7 typesTracy
barDump()
dumps basic location by defaulteditorLink()
improved way how file names are shortenedformatMessage()
Latte
Utils
random_int()
on PHP 7getExtensionMethods()
Sandbox
For the details you can have a look at:application,component-model,database +previous,di,forms,mail,php-generator +previous,utils +previous,latte,tracy.
9. 10. 2015
applyLimit()
throws exception for negative values (but not when you usepage()
)For the details you can have a look at thediff.
9. 10. 2015
ObjectMixin: added warning when method-getter is used by mistake (for getters without parameters) (BC break)
Note: This release will trigger warningDid 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 thediff.
9. 10. 2015
9. 10. 2015
For the details you can have a look at thediff.
9. 10. 2015
PresenterComponentReflection::convertType()
support for all builtin PHP typehintsPresenterComponentReflection::convertType()
converts NULL to appropriate type@property
phpDocFor the details you can have a look at thediff.
9. 10. 2015
For the details you can have a look at thediff.
9. 10. 2015
For the details you can have a look at thediff.
9. 10. 2015
from()
fixes for ReflectionObjectdump()
throws exception for closures__toString()
: brackets are no longer set when generating classes from global namespace onlyFor the details you can have a look at thediff.
9. 10. 2015
14. 9. 2015
dump()
for data with simple Nette\DI\StatementFor the details you can have a look at thediff.
14. 9. 2015
unresolveName()
supports for build-in typessetParameters()
& ClassType::setProperties()
&setMethods()
retain names in keysFor the details you can have a look at thediff.
14. 9. 2015
applyLimit()
: supports keywords DISTINCT and ALL after SELECTFor the details you can have a look at thediff.
14. 9. 2015
getExtensionMethods()
random_int()
on PHP 7microtime()
,str_shuffle()
andlcg_value()
when cryptographically strong source is usedFor the details you can have a look at thediff.
23. 8. 2015
Nette Framework 2.3.5 has just been released.
fetchField()
warmupCache()
For the details you can have a look at the diffs:application,database,neon,php-generator,utils,latte,tracy.
23. 8. 2015
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
setDebugMode()
accepts only array|string|boolenableDebugger()
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
loadFromFile()
uses nativeexec()
without logging and creating result setFor the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
update()
#57#58formatDateInterval()
#56getReferencedTable()
always refetching when primary is NULLFor the details you can have a look at thediff.
23. 8. 2015
loadFromFile()
uses nativeexec()
without logging and creating result setgetReferencedTable()
always refetching when primary is NULLFor the details you can have a look at thediff.
23. 8. 2015
formatLike()
#46For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
<label n:name></label>
is rendered without caption, fixes6d16631For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
For the details you can have a look at thediff.
23. 8. 2015
23. 8. 2015
Nette Framework 2.2.11 has just been released.
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.
15. 8. 2015
For the details you can have a look at thediff.
20. 7. 2015
Nette Framework 2.3.4 has just been released.
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.
20. 7. 2015
Nette Framework 2.2.10 has just been released.
For the details you can have a look at the diffs:application,component-model,database,http,safe-stream,tokenizer,latte.
16. 7. 2015
For more informationsee documentation andchangelog.
3. 7. 2015
{snippet}
and{snippetArea}
without name has name''
in both PHP 5 and PHP 7For the details you can have a look at thediff.
3. 7. 2015
3. 7. 2015
3. 7. 2015
{snippet}
and{snippetArea}
without name has name''
in both PHP 5 and PHP 7For the details you can have a look at thediff.
3. 7. 2015
HtmlNode::$isEmpty
is TRUE for shortcuts like<textarea />
in HTML modeFor the details you can have a look at thediff.
3. 7. 2015
{dump}
updated for 2.3<element />
<script>
with type text/json is escaped as javascriptFor the details you can have a look at thediff.
3. 7. 2015
<element />
syntax=off
Engine::VERSION
For the details you can have a look at thediff.
3. 7. 2015
17. 6. 2015
We would like to announce the Nette Framework 2.3.3 containing these improvements:
For the details you can have a look at the diffs:bootstrap,component-model,database,di,forms,http,mail,utils.
17. 6. 2015
14. 6. 2015
For the details you can have a look at thediff.
14. 6. 2015
*@annotation
For the details you can have a look at thediff.
14. 6. 2015
For the details you can have a look at thediff.
14. 6. 2015
For the details you can have a look at thediff.
14. 6. 2015
For the details you can have a look at thediff.
6. 5. 2015
6. 5. 2015
Nette Framework 2.2.9 has just been released and this release marks theend 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.
For the details you can have a look at the diffs:application,caching,di,forms,http,utils.
6. 5. 2015
We would like to announce the Nette Framework 2.3.2 containing these improvements:
<label n:name></label>
is rendered as is, without captionFor the details you can have a look at the diffs:application,caching,database,di,forms,http,latte,tracy.
3. 5. 2015
3. 5. 2015
3. 5. 2015
30. 3. 2015
tester --coverage coverage.xml
)tester -o junit
)Tester
tosrc
For more informationsee documentation andchangelog.
30. 3. 2015
This release fixes some minor issues. For more informationsee documentation andchanges.
27. 3. 2015
We would like to announce the Nette Framework 2.3.1 containing these improvements:
<label n:name />
displays caption, as{label /}
does<button>
<script>
with type text/json is escaped as javascript{dump}
logSeverity
For the details you can have a look at the diffs:application,bootstrap,caching,database,deprecated,di,forms,neon,utils,latte,tracy.
10. 3. 2015
We would like to announce the Nette Framework 2.2.8 containing these improvements:
netteForms.js
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.
25. 2. 2015
One - two - three, we are very proud to announce the Nette Framework two three!
LinkGenerator
Request::getParameter()
, deprecatedRequest::isPost()
BC breaks:
<presenter=UpperCasedDefaultValue>
and<presenter url-cased-regexp-mask>
.Route::addStyle()
&Route::setStyleProperty()
are deprecated and now will triggerE_USER_DEPRECATED
.phtml
andold link syntaxnette
to one level up. If you move up one of the sectionscontainer
,mailer
ordebugger
, rename it todi
,mail
andtracy
.Configurator::addServices()
DI\ContainerLoader
Configurator::DEVELOPMENT & PRODUCTION
(BC break)Configurator::setDebugMode()
accepts only bool / string / arrayFileStorage
: removed usage of realpath()$val = $cache[$key]
or$cache[$key] = $val
triggersE_USER_DEPRECATED
. Use please$cache->load($key)
and$cache->save($key, $val)
DriverException
,ConnectionException
ConstraintViolationException
,ForeignKeyConstraintViolationException
,NotNullConstraintViolationException
andUniqueConstraintViolationException
?and
?or
?set
?values
?order
?name
IRowContainer::fetchAssoc()
,ISupplementalDriver::convertException()
(BC break)new package for deprecated stuff
DecoratorExtension
,DIExtension
andInjectExtension
CompilerExtension::validateConfig()
Class::method()::method()::method()
addConfig() & loadConfig()
, compile() returnsClassType[]
BC breaks:
Finder::filter()
callback always receives as argument (at least) aFilesystemIterator
netteForms.js
TextBase::addFilter()
is processed during validation, addedRules::addFilter()
$input->addCondition(...)->addFilter(...)
Container::onValidate
callbacks are passed values via second parameterNette\Forms\Controls\TextBase::filterFloat
was removedNette\Forms\Controls\TextBase::validateFloat
was moved toNette\Forms\Validator
, as well asRules::$defaultMessages
setHtmlId()
$radioList->generateId = TRUE
. But again: set you base ID viasetHtmlId()
Helpers::formatDate()
, addedIResponse::getHeader()
(BC break)Request::getUrl()
is immutableResponse::date()
,Request::isPost()
&Request::getFile()
with multiple keys are deprecated{ifset block}
&{elseifset block}
without#
<script type="text/html">
(#24 ˁ){php …}
as replacement for{? …}
{include $dir . '/template.latte'}
#26)n:class
&class
leads to exception$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?)setHtmlBody()
first(a, b)second(1, 2)
Helpers::getDeclaringClass()
safe://...
to namespacednette.safe://...
SafeStream::register()
Tracy\ILogger
and rewritten defaultLogger
Debugger::enable()
implements checking of cookie (formatcookie@ip.address
)Debugger::$errorTemplate
LOCATION_SOURCE, LOCATION_LINK, LOCATION_CLASS
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 subdomains24. 2. 2015
31. 1. 2015
$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?)setHtmlBody()
31. 1. 2015
For the details you can have a look at thediff.
31. 1. 2015
nette
to one level up. If you move up one of the sectionscontainer
,mailer
ordebugger
, rename it todi
,mail
andtracy
.Configurator::addServices()
DI\ContainerLoader
Configurator::DEVELOPMENT & PRODUCTION
(BC break)Configurator::setDebugMode()
accepts only bool / string / array31. 1. 2015
For the details you can have a look at thediff.
31. 1. 2015
31. 1. 2015
DecoratorExtension
,DIExtension
andInjectExtension
CompilerExtension::validateConfig()
Class::method()::method()::method()
addConfig() & loadConfig()
, compile() returnsClassType[]
BC breaks:
31. 1. 2015
LinkGenerator
Request::getParameter()
, deprecatedRequest::isPost()
BC breaks:
<presenter=UpperCasedDefaultValue>
and<presenter url-cased-regexp-mask>
.Route::addStyle()
&Route::setStyleProperty()
are deprecated and now will triggerE_USER_DEPRECATED
.phtml
andold link syntax31. 1. 2015
netteForms.js
TextBase::addFilter()
is processed during validation, addedRules::addFilter()
$input->addCondition(...)->addFilter(...)
Container::onValidate
callbacks are passed values via second parameterNette\Forms\Controls\TextBase::filterFloat
was removedNette\Forms\Controls\TextBase::validateFloat
was moved toNette\Forms\Validator
, as well asRules::$defaultMessages
setHtmlId()
$radioList->generateId = TRUE
. But again: set you base ID viasetHtmlId()
31. 1. 2015
DriverException
,ConnectionException
ConstraintViolationException
,ForeignKeyConstraintViolationException
,NotNullConstraintViolationException
andUniqueConstraintViolationException
?and
?or
?set
?values
?order
?name
IRowContainer::fetchAssoc()
,ISupplementalDriver::convertException()
(BC break)31. 1. 2015
FileStorage
: removed usage of realpath()$val = $cache[$key]
or$cache[$key] = $val
triggersE_USER_DEPRECATED
. Use please$cache->load($key)
and$cache->save($key, $val)
31. 1. 2015
Helpers::dumpSql()
quotes strings using connectionFor the details you can have a look at thediff.
31. 1. 2015
Finder::filter()
callback always receives as argument (at least) aFilesystemIterator
31. 1. 2015
For the details you can have a look at thediff.
31. 1. 2015
Helpers::formatDate()
, addedIResponse::getHeader()
(BC break)Request::getUrl()
is immutableResponse::date()
,Request::isPost()
&Request::getFile()
with multiple keys are deprecated31. 1. 2015
{ifset block}
&{elseifset block}
without#
<script type="text/html">
(#24 &nette/nette#705){php …}
as replacement for{? …}
{include $dir . '/template.latte'}
#26)n:class
&class
leads to exception31. 1. 2015
first(a, b)second(1, 2)
31. 1. 2015
For the details you can have a look at thediff.
31. 1. 2015
For the details you can have a look at thediff.
31. 1. 2015
31. 1. 2015
Helpers::getDeclaringClass()
31. 1. 2015
self
to original class name31. 1. 2015
31. 1. 2015
31. 1. 2015
safe://
changed tonette.safe://
SafeStream::register()
31. 1. 2015
31. 1. 2015
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 subdomains31. 1. 2015
Tracy\ILogger
and rewritten defaultLogger
Debugger::enable()
implements checking of cookie (formatcookie@ip.address
)Debugger::$errorTemplate
LOCATION_SOURCE, LOCATION_LINK, LOCATION_CLASS
28. 1. 2015
{elseifset #block}
For the details you can have a look at thediff.
27. 1. 2015
This release fixes some issues:
For more informationsee documentation andchanges.
30. 12. 2014
30. 12. 2014
30. 12. 2014
30. 12. 2014
clean(Cache::ALL)
For the details you can have a look at thediff.
30. 12. 2014
30. 12. 2014
30. 12. 2014
For the details you can have a look at thediff.
30. 12. 2014
For the details you can have a look at thediff.
30. 12. 2014
For the details you can have a look at thediff.
30. 12. 2014
30. 12. 2014
For the details you can have a look at thediff.
30. 12. 2014
30. 12. 2014
30. 12. 2014
Object, Strings::length(), Strings::substring()
For the details you can have a look at thediff.
30. 12. 2014
30. 12. 2014
We would like to announce the Nette Framework 2.2.7 containing these improvements:
Object, Strings::length(), Strings::substring()
@inject
can be defined in traitsFor the details you can have a look at the diffs:application,caching,di,finder,forms,http,neon,security,utils,tracy.
30. 12. 2014
Nette Framework 2.1.9 has just been released and this release marks theend of active support of the Nette 2.1 series. For one year only critical issues will be fixed. All users areencouraged to upgrade to the current stable version Nette 2.2.
Object, Strings::length(), Strings::substring()
For the details you can have a look at thediff.
30. 12. 2014
For the details you can have a look at thediff.
30. 12. 2014
For the details you can have a look at thediff.
30. 12. 2014
For the details you can have a look at thediff.
22. 12. 2014
Nette Framework 2.0.18 has just been released and this release marks theend of life of the Nette 2.0 series and end of support for PHP 5.2. All users areencouraged to upgrade to the current stable version Nette 2.2.
For the details you can have a look at thediff.
15. 11. 2014
We would like to announce the Nette Framework 2.2.6 containing these improvements:
For the details you can have a look at the diffs:bootstrap,http,reflection,tracy.
15. 11. 2014
We would like to announce the Nette Framework 2.1.8 containing these improvements:
For the details you can have a look at thediff.
29. 10. 2014
Nette Framework 2.0.17 has just been released and contains these security fixes:
Your session has expired. Please return to the home page and try again.
For the details you can have a look at thediff.
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.
29. 10. 2014
We would like to announce the Nette Framework 2.1.6 containing these improvements:
Due to PHP bugs #61106 and #66375 we recommend to use version 2.1.7.
For the details you can have a look at thediff.
27. 10. 2014
We would like to announce the Nette Framework 2.2.4 containing these improvements:
Forms:
Tracy:
others:
$configurator->addConfig(array(...configuration...))
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.
27. 9. 2014
-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 occuresEnvironment::setup()
and file tester.phpis_readable
&is_writable
For more informationsee documentation andchangelog.
28. 8. 2014
Nette Framework 2.0.16 has just been released and contains these security fixes:
For the details you can have a look at thediff.
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.
28. 8. 2014
We would like to announce the Nette Framework 2.1.5 containing these improvements:
For the details you can have a look at thediff.
28. 8. 2014
We would like to announce the Nette Framework 2.2.3 containing these improvements:
Fixes:
|date
respects active timezonekey1:- subitem- subitem
News:
$configurator->setDebugMode('secret@23.75.345.200')
, wheresecret
must match with cookienette-debug
$template->$filter()
.For the details you can have a look at the diffs:application,bootstrap,database,di,forms,http,mail,neon,php-generator,utils,latte,tracy.
28. 8. 2014
For the details you can have a look at thediff.
27. 8. 2014
Template::registerHelperLoader
: removed E_USER_DEPRECATEDTemplateFactory
: added missing filters modifyDate, length & nullFor the details you can have a look at thediff.
27. 8. 2014
$configurator->setDebugMode('secret@23.75.345.200')
, wheresecret
must match with cookienette-debug
For the details you can have a look at thediff.
27. 8. 2014
For the details you can have a look at thediff.
27. 8. 2014
ContainerBuilder::addExcludedClasses()
for excluding classes from autowiringnette/nette#1424ServiceDefinition::getTag()
For the details you can have a look at thediff.
27. 8. 2014
For the details you can have a look at thediff.
27. 8. 2014
|date
respects active timezone{includeblock}
gently trims output$template->$filter()
.For the details you can have a look at thediff.
27. 8. 2014
27. 8. 2014
27. 8. 2014
ClassType::from
processes only own propertiesFor the details you can have a look at thediff.
27. 8. 2014
Debugger::$logSeverity
for logging bluescreen for errors/warnings/notices in production modeFor the details you can have a look at thediff.
27. 8. 2014
For the details you can have a look at thediff.
24. 6. 2014
- key: val key2: val2
For the details you can have a look at thediff.
24. 6. 2014
We would like to announce the Nette Framework 2.2.2 containing these improvements:
{var $foo}
For the details you can have a look at the diffs:application,bootstrap,caching,database,forms,mail,latte,tracy.
24. 6. 2014
For the details about the changes you can have a look at theGithub diff.
24. 6. 2014
For the details about the changes you can have a look at theGithub diff.
24. 6. 2014
Nothing new.
24. 6. 2014
For the details about the changes you can have a look at theGithub diff.
24. 6. 2014
For the details about the changes you can have a look at theGithub diff.
24. 6. 2014
For the details you can have a look at thediff.
24. 6. 2014
{var $foo}
Note: usage of some internal variables like$_l
has been changed.
For the details about the changes you can have a look at theGithub diff.
24. 6. 2014
Added protection against innerHTML mXSS vulnerabilitynette/nette#1496
For the details about the changes you can have a look at theGithub diff.
24. 6. 2014
For the details you can have a look at thediff.
11. 6. 2014
--stop-on-fail
that stops execution upon first error@testcase
,@multiple
or@dataprovider
For more informationsee documentation andchangelog.
27. 5. 2014
We would like to announce the Nette Framework 2.2.1 containing these improvements:
- key: val key2: val2
For the details you can have a look at the diffs:neon,robot-loader,utils,latte,tracy.
26. 5. 2014
We would like to announce the Nette Framework 2.1.4 containing these fixes:
For the details you can have a look at thediff.
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 thediff.
24. 5. 2014
We would like to announce the Nette Framework 2.0.15 containing these fixes and improvements:
For the details you can have a look at thediff.
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.
23. 5. 2014
First public release, seehttps://phpfashion.com/ladenka-jak-se-vam-libi
23. 5. 2014
For the details you can have a look at thediff.
23. 5. 2014
For the details you can have a look at thediff.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
For the details you can have a look at thediff.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md andsandbox.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
After 6 years of development Latte has become standalone templating engine with a lot of cool features.
For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
The first standalone release. For more informationsee readme.md.
12. 5. 2014
We would like to announce the Nette Framework 2.1.3 containing these fixes:
AnnotationsParser::$useAnnotationClasses
For the details you can have a look at thediff.
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 projectsApplication,Caching,ComponentModel,Nette Database,DI,Finder,Forms,Http,Latte,Mail,Neon,PhpGenerator,Reflection,RobotLoader,SafeStream,Security,Tokenizer,Tracy andNette Utils.
It also brings complete newLatte API for standalone usage:
$latte=newLatte\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.
3. 4. 2014
--coverage
and--coverage-src
for generating code coverage reports (tool coverage-report.php was removed)-log
changed to-l
or--log
to be consistent with other optionsAssert::isEqual
can compare recursive objects [Closes#93]Assert::nan()
Tester\Environment::loadData()
for loading data via annotation@dataProvider
For more informationsee documentation andchangelog.
20. 3. 2014
We would like to announce the Nette Framework 2.1.2 containing these fixes:
For the details you can have a look at thediff.
11. 2. 2014
We would like to announce the release of Nette Framework 2.1.1 containing these fixes:
|dataStream
,{link}
or{plink}
are usedn:name
without using colon in name@method
with extension methods#1344n:name
with othern:attributes
Adds:
url
<select n:name=... />
For the details you can have a look at thediff.
8. 2. 2014
Four years ago was added to the Nette Frameworknew simple unit test framework ;-) Now Nette Tester has become stable testing tool withintegrated support in NetBeans 8.0 and lot of features:
For more informationsee readme.md.
1. 1. 2014
Nette Framework 2.0.14 has just been released and is now available fordownload 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 scriptmigrate-53.php.
It contains a lot of fixes and improvements:
changed
event#1087|safeUrl
, white list for http & ftp URL:<a href="{$url|safeUrl}">
For the details you can have a look at thediff.
31. 12. 2013
After two years of development we are very proud to announce the availability of Nette Framework 2.1.0!
%basePath%
,%tld%
and%domain%
sendJson()
Nette/Caching/Storages/SQLiteStorage
)Form::INTEGER
,NUMERIC
andFLOAT
converts values to integer or floatForm::URL
prependshttps://
to valueForm::getHttpData($htmlName)
returns data for single field<tag attr=$val>
without quotesn:name
for<form> <input> <select> <textarea>
{input name:$key}
and{label name:$key}
|safeurl
which allowes only http(s), ftp and mailto protocolshref
,src
,action
andformaction
attributes (can be bypassed by|nosafeurl
modifier)|noescape
which is preferred over exclamation mark{foreach ...|nointerator}
bypasses creating variable$iterator
n:ifcontent
{include block}
can be written without hashsetProxy()
FileSystem
Callback
isList()
flatten()
supports key preservingfindPrefix()
andnormalizeNewLines()
isType()
@method
ftruncate
(requires PHP 5.4+)30. 12. 2013
Assert::error()
can test more than one errorFor more informationsee readme.md.
11. 12. 2013
First release of Tracy, the rebranded Nette Debug.
11. 12. 2013
--watch
For more informationsee readme.md.
5. 11. 2013
Nette Framework 2.0.13 has just been released and is now available fordownload. Feel free to update!
It fixessecurity bug in Latte and introduces new form validators NOT_EQUAL & BLANK.
For the details about the changes you can have a look at theGithub diff.
8. 8. 2013
Nette Framework 2.0.12 has just been released and is now available fordownload. Feel free to update!
It fixes few bugs in Nette\Database discovered in 2.0.11 (#1156,#1175,#1198), innetteForms.js
, sanitizes server name inNette\Mail
, adds support for IPv6 inNette\Http\RequestFactory
and has better performance with APC.
For the details about the changes you can have a look at theGithub diff.
7. 8. 2013
--tap
tester *.php
output/
subdirectory, messagediff file.expected file.actual
is printedFor more informationsee readme.md.
19. 7. 2013
--colors
@exitCode
,@htmlCode
,@outputMatch
and@outputMatchFile
@throws
for TestCaseAssert::match
is fully customizable viaAssert::$pattern
and regular expressionsAssert::type
accepts default PHP typesAssert::matchFile
,truthy
andfalsey
For more informationsee readme.md.
11. 7. 2013
Nette Framework 2.0.11 has just been released and is now available fordownload. Feel free to update!
It contains a lot of fixes and improvements contributed by 17 authors:
|noescape
andn:name
in Latte and improved escaping in HTML commentsFor the details about the changes you can have a look at theGithub diff.
9. 7. 2013
After 4 years of development Nette Tester has become stable testing tool with a lot of cool features:
For more informationsee readme.md.
3. 7. 2013
8. 3. 2013
Nette Framework 2.0.10 has just been released and is now available fordownload. 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 theGithub diff.
(Support for constants in config file introduced in 2.0.9 was removed due to BC break.)
1. 1. 2013
New Year and new version of Nette Framework 2.0.8 has just been released. And is now available fordownload. Feel free to update!
Fixes and improvements:
#hash
part of URLFor the details about the changes you can have a look at theGithub diff.
28. 11. 2012
Nette Framework 2.0.7 has just been released and is now available fordownload. Feel free to update!
Fixes and improvements:
For the details about the changes you can have a look at theGithub diff.
1. 10. 2012
Nette Framework 2.0.6 has just been released and is now available fordownload. Feel free to update!
Fixes and improvements:
For the details about the changes you can have a look at theGithub diff.
30. 8. 2012
Nette Framework 2.0.5 has just been released and is now available fordownload. Feel free to update! It contains a lot of minor improvements and bug fixes contributed by 10 authors.
Fixes and improvements:
For the details about the changes you can have a look at theGithub diff.
30. 7. 2012
Nette Framework 2.0.4 (code name Lisboa) has just been released and is now available fordownload. Feel free to update. It contains a lot of minor improvements and bug fixes contributed by 22 authors.
Improvements:
'templates'
may be located inside presenter's directoryChanges:
For the details about the changes you can have a look at theGithub diff.
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:
Changes:
sameorigin
autoStart
changed tosmart
.Nette\Config\Configurator::setDebugMode()
used to replacesetProductionMode()
.For the details about the changes you can have a look at theGithub diff.
24. 2. 2012
2. 2. 2012
After years of development, after alpha & beta versions and 3 release candidates, we are very proud to announce theimmediate availability of Nette Framework 2.0 final.
Nette Framework 2.0 has many innovations, some of them are unique in the PHP world:
…and a lot lot lot of enhancements in every part of framework.
Nette Framework also comes with new andgreat documentation. How to get started? TryQuick Start tutorial.
Nette Framework 2 is released. It's time to celebrate!
new Route('<presenter=Homepage><action=default>')
Presenter:action
(forum)IRouter::constructUrl()
second argument toNette\Web\Uri
.$router[] = new Route('login', function() {...})
{=$var ? item}
arrays{=[a, b, c]|join:' '}
comments{var $prom = 123 /*, $name = ahoj*/}
and array expansion{link default $id, (expand) $args, lang => cs}
{var $prom = 123, $name = ahoj}
{first}, {last}, {sep}
and{l} {r}
{cache}
(forum)n:class
an:href
.latte
{form} {label} {control}
<input n:name="email" ...>
Debug::log($message [, $priority])
Nette\Debug::$scream = TRUE
ICacheJournal
andFileJournal
Nette\Caching\MemoryStorage
Environment
Environment
Nette\Web\HttpRequest
is created viaHttpRequestFactory
Nette\Finder
(forum )SmtpMailer
(forumNette\String::length(), compare(), toAscii()
and safe regular expression viasplit(), match(), matchAll()
,replace()
andArrayTools::grep()
Nette\Json
CallbackFilterIterator, RecursiveCallbackFilterIterator, MapIterator
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-8Nette Tests
Code-Checker
Nette\Framework::$iAmUsingBadHost = TRUE
18. 9. 2010
Řada 0.9 se uzavírá a souhrn všechbugfixů 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!
30. 6. 2010
Venku je verze 0.9.5. Ta především opravuje řadu chybiček, jejichž kompletní výčet najdete vchangelogu. 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:
{foreach}
) nyní umí iterovat i nad SimpleXMLElementlogin(), logout() a isLoggedIn()
, volání starších metod vyvolá varováníNETTE, NETTE_VERSION_ID, NETTE_PACKAGE
a takéPHP_VERSION_ID
pod PHP < 5.2.714. 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 vchangelogu. Zároveň také přináší několik vylepšení:
login(), logout() a isLoggedIn()
Nette\Application
se automaticky nastartuje session, je-li přítomno session-IDIdentity::__isset()
%label, %name a %value
vevýchozích chybových zprávách<form name="...">
za<form>
{$var |truncate : 30}
) a klíčová slovatrue, false, null
{var ...}
jako alias pro{assign ...}
{var item => value}
i{var $item => value}
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.
callback()
aNette\Callback pro čitelnější zápis a volání callbackůRobotLoader
DateTime53
opravující zmršený DateTime v PHP 5.2 (podpora serializace & unix timestamp)'+ 14 days'
, jako relativní počet sekund nebo jako UNIX timestamp.String::padLeft()
aString::padRight()
(obdoba str_pad pro UTF-8)Uri::setPass()
agetPass()
nahrazujeUri::setPassword()
andgetPassword()
HttpResponse::expire()
nahrazujeHttpResponse::setExpiration()
Nette\Object::getClass()
(důvodem je příliš obecný název, lze nahradit za$obj->reflection->name
)Nette\Loaders\SimpleLoader
,Nette\Config\ConfigAdapterXml
,Nette\Forms\RepeaterControl
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.Form::processHttpRequest()
bylo přejmenováno naForm::fireEvents()
dump()
jako ("nejen .(lze dumpovat víc proměnných)") zkratka proNette\Debug::dump()
Debug
nevytváří HTML logy pro opakující se chyby(zvažuju ukládat soubory komprimované)isFirst()
aisLast()
podporujerenderování mřížek<?xml ... ?>
bez kliček kvůli PHP parseru{debugbreak}
podporuje XDebugLatteFilter::invoke
potažmoCurlyBracketsFilter::invoke
(zpravidla by mělo stačit inicializaci filtru odstranit)resize()
se zápornými argumentyzrcadlí obrázek (Image i ImageMagick)calculateSize()
je nyní statická(BC break!)Asi nejvýraznější novinkou je nový soubor třídNette\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 budepříští velká věc, nicméně tuto oblast čeká ještě velký vývoj.
Nette\Annotations
- podpora se přesunula do třídNette\Reflection
FileStorage
pro ukládánítagů a priority používá SQLite databáziVe 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ětvi1.0-dev
.
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í:
[...]
(POZOR: místo původních složených závorek jsou ve finální verzi hranaté)setDefaultValue()
na prvcích formuláře%templatesDir%, %presentersDir%, %componentsDir%, %modelsDir%
User
aSession / SessionNamespace
přistupovat přes metodygetUser()
agetSession()
.Šablony:
$basePath
nahrazující$baseUri
(liší se v absenci pravostranného lomítka){status ...}
pro odeslání HTTP kódu a{layout ...}
jako alias pro{extends ...}
#
Kromě zmíněného BC breaku s proměnnými prostředí by se žádná nekompatibilní změna objevit neměla, takžeupgrade 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.
18. 9. 2009
Pouhý měsíc povydání 0.9.0 je tu další setinková stabilní verze. Co nabízí nového?
n:
attributů a dopřána možnost měnit syntax maker via{syntax ...}
Součástí distribuce je i nová verzedibi 1.2, jejíž hlavní novinkou jeprá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.
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ší:
{ifset ...}...{/if}
,{assign ...}
,{default ...}
a{control ...}
prepare
$presenter->payload
Cache::CALLBACKS
)Verze by měla být plně zpětně kompatibilní s v0.8 s výjimkou změn uvedených v tomtofóru (a ty jako vždy hlásí upozornění).
4. 5. 2009
.
23. 1. 2006
Released in 2008 as open source after 4 years of development.
compatible with PHP 8.0
getParameter()
#291#288<Type>
syntax for autowiring a collection of services (#293)normalizeRow()
don't return small float as string#289getForeignKeys()
#281ConnectionPanel::initialize()
replacesHelpers::initializeTracy()
getColumns()
for materialized view too