All Versions
19
Latest Version
Avg Release Cycle
40 days
Latest Release
1248 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v2.9.1 Changes
November 24, 2020- Compiler: improved code indentation
- BlockMacros: added {include file with blocks} as a successor to {includeblock} (#152)
- BlockMacros: combination of n:snippet & n:ifcontent is forbidden #243
- ⏪ Revert "{snippetArea} requires parameter" #240
- 0️⃣ BlockMacros: parameters in {define} can have default values
- BlockMacros: {define} accepts named parameters #184 #198
- 🛠 BlockMacros: fixed variables visibility between blocks depend on block order, alternative solution #178"
- 👍 BlockMacros: supports expression as block/snippet name
- 👍 CoreMacros: supports expression in include/extends
- {embed} can contain {import}
- Only top-level {block} is auto-closed
- SecurityPolicy: added new tags & filters
- 🔄 changed \RuntimeException to Latte\RuntimeException
- 🔄 changed word 'modifier' --> 'filter' in exception messages
- ⏪ Revert "Template imported via {import} can use {extends}"
- CoreMacros: {breakIf} and {continueIf} checks ancestors instead of parents #239
- 0️⃣ Defaults: filter 'webalize' is optional and depends on nette/utils #238
- CoreMacros: modified use of temporary variables
- 🛠 CoreMacros: fixed {var} in {switch} usage #237
- Compiler: tag name can contain dots, dashes and colons #236
- 🚚 BlockMacros: removed checks if dynamic snippet is used in {snippet} or {snippetArea} #134
For the details you can have a look at the diff.
-
v2.9.0 Changes
November 16, 2020🆕 New Features
- possibility to
{include block from file}
- filter
|sort
,|clamp
& custom functionclamp()
- ➕ added
{ifchanged}
- ➕ added
{skipIf}
- ➕ added
{foreach} {else} {/foreach}
- ➕ added
{try} & {else} & {rollback}
- ➕ added
{embed file.latte}
- ➕ added local blocks
{block local name}
&{define local name}
{case 1, 2, 3}
accepts more than one option- syntax
{include block foo}
and{include file foo}
- syntax
{ifset block foo}
- syntax
{ifset #$blockName}
- ➕ added
$iterator->parent
, returns the iterator surrounding the current one - ➕ added
$iterator->counter0
, returns 0-indexed counter - 👍 implemented support for named arguments
- ➕ added null-coalescing-safe operator
??->
👌 Improvements & Fixes
- template code: direct HTML changed to 'echo' statements
- 🛠 BlockMacros: fixed variables visibility between blocks depend on block order [Closes #178]
- FilterExecutor::filterContent() converts HtmlStringable to text [Closes #215]
- 👍 Compiler: supports uppercases AND|OR|XOR [Closes #172]
- 🔨 BlockMacros: big refactoring
- 🚚 Template & BlockMacros: used new class Block, removed $blockQueue & $blockTypes
- 🚚 Template: removed old accumulator $_b (deprecated in 2.4, BC break)
- ➕ added Defaults: default filters list moved here from FilterExecutor
- CoreMacros: replaced global queuened temporary variables with local ones
- BlockMacros: snippet driver wrapped in try ... finally
- Parser: fixed parsing {__()} [Closes #226]
- checks for valid macro/filter/function/block names
- macros validates arguments, modifiers, position (MacroNode::validate())
- {debugbreak} uses only xdebug
- 🔄 changed word 'macro' --> 'tag' in exception messages
- CachingIterator: do not ask when not in valid state (#230)
- 👌 improved typehints
- PhpHelpers::reformatCode() appends correctly semicolon after '${""}'
🔄 Changes
- 🗄 Colons as argument separators in modifiers are deprecated (BC break)
- optional chaining: operator ?-> in Latte behaves the same as in PHP (BC break)
- 🗄 optional chaining: deprecated support for $var? and $obj?::$prop to be consistent with PHP 8 (BC break)
- internal variables are prefixed $__ and disallowed to be used
- Template: changed $contentType and $blocks to constants CONTENT_TYPE & BLOCKS
- 🚚 Template & BlockMacros: moved snippets to own layer, removed '_' prefix
- possibility to
-
v2.9.0-RC4
November 12, 2020 -
v2.9.0-RC3
November 08, 2020 -
v2.9.0-RC2
November 06, 2020 -
v2.9.0-RC1
November 05, 2020 -
v2.8.3 Changes
November 04, 2020 -
v2.8.2 Changes
September 29, 2020 -
v2.8.1 Changes
May 12, 2020- 👻 Engine: implemented custom exception handler for {sandbox}
- 📇 renamed Latte\SecurityViolation -> SecurityViolationException (BC break!)
- Template: improved runtime method/property checking
- PhpWriter: variable variables $$ when policy is enabled
- PhpWriter: disabled underscored $_ when policy is enabled
- 👻 PhpWriter: improved exception when |noescape or |nocheck is not allowed
For the details you can have a look at the diff.
-
v2.8.0 Changes
April 20, 2020- ➕ added macro {sandbox}
- implemented policy checking
- PhpWriter: disabled $this/break/case/catch/continue/... when policy is enabled
- 🗄 PhpWriter: deprecated backtick operator
- PhpWriter: disabled _halt_compiler/declare/die/eval/exit/include/include_once/require/require_once in templates
- ➕ added {do} as alias for {php}
- Engine::loadTemplate() uses the same locking mechanism as RobotLoader
- 💅 templates: added typehints to generated methods & improved coding style
- {=...}, {php...}, {do...} must have arguments (BC break)
For the details you can have a look at the diff.