Important: #82230 - Updates to the Fluid template engine library

See forge#82230

Description

This article describes the changes that have been added to the Fluid template engine which is used in TYPO3.

  • Bug fix to evaluate negative numbers in conditions the same way PHP does
  • Bug fix for getLayoutPathAndFilename on TemplatePaths when property was manually set using setter
  • Bug fix to avoid issues with malformed cache identifiers
  • Bug fix to avoid attempting htmlspecialchars() on any values that are not string-compatible
  • Bug fix for adding namespaces to list of ignored namespaces
  • Bug fix to make casting of ints/floats consistent in attribute values and in array values
  • Bug fix to make internal cache of resolved ViewHelpers non-static to make sure it flushes between contexts
  • Bug fix for recursive file resolving
  • Performance bug fix to avoid loading compiled template classes that are already loaded
  • Performance bug fix to make f:render static callable from compiled templates
  • Performance bug fix to improve performance of uncompilable templates
  • New feature: support for hasMyProperty() as alternative to isMyProperty() when using {object.myProperty}
  • New feature: ParserRuntimeOnly ViewHelper trait to use when ViewHelper only has functionality during parsing
  • New feature: ignoreEmptyAttributes() added to TagBuilder, can be called in tag based ViewHelpers to skip rendering of any attributes that evaluate to an empty string
  • New feature: support for AND and OR as alternatives to && and || in boolean attributes like condition on f:if
  • New feature: support for custom error handling and a new implementation of a fault-tolerant error handler
  • New feature: methods getAll and addAll added to ViewHelperVariableContainer to allow getting and setting all variables in a scope
  • New feature: concept of Renderable introduced. A Renderable is any class which implements RenderableInterface - instances of such classes can be assigned as template variables and passed to f:render

Full list can be found on https://github.com/TYPO3/Fluid/compare/2.3.4...2.4.0