Changelog 4.x 

This Changelog lists notable deprecation and breaking changes. The full list of changes is available in the Fluid releases on GitHub.

4.5 

  • Deprecation: Using the xmlns namespace syntax with a PHP namespace instead of an url is deprecated and will no longer work in Fluid v5.
  • Deprecation: Method TYPO3FluidFluidCoreViewHelperAbstractViewHelper::validateArguments() has been marked as deprecated and will be removed in Fluid v5.
  • Deprecation: Custom implementations of the validateArguments() methods in ViewHelpers will no longer be called in Fluid v5. Use TYPO3FluidFluidCoreViewHelperViewHelperArgumentsValidatedEventInterface instead.
  • Deprecation: Classes, interfaces, methods and constants related to cache warmup are deprecated and will be removed in Fluid v5:
    • TYPO3FluidFluidCoreCacheFluidCacheInterface::getCacheWarmer()
    • php

      TYPO3FluidFluidCoreCacheSimpleFileCache::getCacheWarmer()

    • TYPO3FluidFluidCoreCacheFluidCacheWarmerInterface
    • TYPO3FluidFluidCoreCacheStandardCacheWarmer
    • TYPO3FluidFluidCoreCacheFluidCacheWarmupResult
    • TYPO3FluidFluidCoreCompilerFailedCompilingState
    • TYPO3FluidFluidCoreCompilerTemplateCompiler::MODE_NORMAL
    • TYPO3FluidFluidCoreCompilerTemplateCompiler::MODE_WARMUP
    • TYPO3FluidFluidCoreCompilerTemplateCompiler::$mode
    • TYPO3FluidFluidCoreCompilerTemplateCompiler::enterWarmupMode()
    • TYPO3FluidFluidCoreCompilerTemplateCompiler::isWarmupMode()
  • Deprecation: The <f:cache.warmup> ViewHelper is deprecated and will be removed in Fluid v5.
  • Deprecation: Fluid variable names can no longer start with an underscore character (_). Adding such a variable to a template now emits a E_USER_DEPRECATED level error and will result in an exception in Fluid v5. Note that this doesn't affect array keys or object property names, only the name of the variable itself.
  • Deprecation: Replacing <![CDATA[]]> sections by empty lines is deprecated and will be removed in Fluid v5. Method TYPO3FluidFluidCoreParserTemplateProcessorNamespaceDetectionTemplateProcessor.php::replaceCdataSectionsByEmptyLines() now emits a E_USER_DEPRECATED level error.

4.4 

  • Deprecation: Setting a template's layout with the variable layoutName is deprecated and will no longer work in Fluid v5. Use TYPO3FluidFluidCoreParserParsingState->setLayoutName() instead.
  • Deprecation: Constant TYPO3FluidFluidCoreCompilerTemplateCompiler::LAYOUT_VARIABLE has been marked as deprecated and will be removed in Fluid v5.

4.3 

  • Deprecation: Property TYPO3FluidFluidCoreViewHelperAbstractViewHelper::$childNodes has been marked as deprecated and will be removed in Fluid v5. Use $viewHelperNode->getChildNodes() instead.
  • Deprecation: Method TYPO3FluidFluidCoreViewHelperAbstractViewHelper::setChildNodes() has been marked as deprecated and will be removed in Fluid v5.
  • Deprecation: Method TYPO3FluidFluidCoreViewHelperViewHelperInterface::setChildNodes() has been marked as deprecated and will be removed in Fluid v5.

4.2 

  • Deprecation: Method TYPO3FluidFluidCoreViewHelperViewHelperResolver::resolvePhpNamespaceFromFluidNamespace() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Method TYPO3FluidFluidCoreViewHelperViewHelperResolver::isNamespaceValidOrIgnored() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Constant TYPO3FluidFluidCoreParserPatterns::NAMESPACESUFFIX has been marked as deprecated and will be removed in Fluid v5.
  • Deprecation: Method TYPO3FluidFluidCoreViewHelperAbstractViewHelper::isValidType() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Method TYPO3FluidFluidCoreViewHelperAbstractViewHelper::getFirstElementOfNonEmpty() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Method TYPO3FluidFluidCoreViewHelperAbstractViewHelper::postParseEvent() now emits a E_USER_DEPRECATED level error. It will be removed with Fluid v5. ViewHelpers using this event should switch to the new TYPO3FluidFluidCoreViewHelperViewHelperNodeInitializedEventInterface
  • Deprecation: Method TYPO3FluidFluidCoreViewHelperViewHelperResolver::addNamespaces() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Inheritance of ViewHelper namespaces is deprecated. If a ViewHelper namespace is used in a template that is neither defined globally nor locally directly in the template, Fluid now emits a E_USER_DEPRECATED level error.

4.0 

  • Breaking: Method TYPO3FluidFluidViewAbstractTemplateView::initializeRenderingContext() has been removed.
  • Breaking: Method TYPO3FluidFluidViewAbstractTemplateView::setCache() has been removed.
  • Breaking: Method TYPO3FluidFluidViewAbstractTemplateView::getTemplatePaths() has been removed.
  • Breaking: Method TYPO3FluidFluidViewAbstractTemplateView::getViewHelperResolver() has been removed.
  • Breaking: Change visibility of class constants that represent internal Fluid state. The following constants have been set to protected and can only be accessed by AbstractTemplateView and its child implementations: TYPO3FluidFluidViewAbstractTemplateView::RENDERING_TEMPLATE, TYPO3FluidFluidViewAbstractTemplateView::RENDERING_PARTIAL, TYPO3FluidFluidViewAbstractTemplateView::RENDERING_LAYOUT
  • Breaking: Careful addition of method and property type hints throughout the system. This should be only mildly breaking and projects should be able to adapt easily.
  • Deprecation: First parameter of method TYPO3FluidFluidViewTemplatePaths->__construct() is deprecated. The Constructor will be removed with Fluid v5.
  • Deprecation: Method TYPO3FluidFluidViewTemplatePaths->fillFromConfigurationArray() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Method TYPO3FluidFluidViewTemplatePaths->fillDefaultsByPackageName() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Method TYPO3FluidFluidViewTemplatePaths->ensureAbsolutePaths() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Method TYPO3FluidFluidViewTemplatePaths->extractPathArrays() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Method TYPO3FluidFluidViewTemplatePaths->getPackagePath() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Method TYPO3FluidFluidViewTemplatePaths->toArray() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Constant TYPO3FluidFluidViewTemplatePaths::DEFAULT_TEMPLATES_DIRECTORY has been marked as deprecated and will be removed in Fluid v5.
  • Deprecation: Constant TYPO3FluidFluidViewTemplatePaths::DEFAULT_LAYOUTS_DIRECTORY has been marked as deprecated and will be removed in Fluid v5.
  • Deprecation: Constant TYPO3FluidFluidViewTemplatePaths::DEFAULT_PARTIALS_DIRECTORY has been marked as deprecated and will be removed in Fluid v5.
  • Deprecation: Trait TYPO3FluidFluidCoreViewHelperTraitsCompileWithRenderStatic now emits a E_USER_DEPRECATED level error.
  • Deprecation: Trait TYPO3FluidFluidCoreViewHelperTraitsCompileWithContentArgumentAndRenderStatic now emits a E_USER_DEPRECATED level error.
  • Deprecation: Static method renderStatic() on ViewHelpers that don't use TYPO3FluidFluidCoreViewHelperTraitsCompileWithRenderStatic or TYPO3FluidFluidCoreViewHelperTraitsCompileWithContentArgumentAndRenderStatic now emits a E_USER_DEPRECATED level error.
  • Deprecation: Method TYPO3FluidFluidCoreViewHelperAbstractViewHelper->overrideArgument() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Calling method TYPO3FluidFluidCoreViewHelperAbstractTagBasedViewHelper->registerUniversalTagAttributes() now emits a E_USER_DEPRECATED level error.
  • Deprecation: Calling method TYPO3FluidFluidCoreViewHelperAbstractTagBasedViewHelper->registerTagAttribute() now emits a E_USER_DEPRECATED level error.
  • Breaking: Method TYPO3FluidFluidCoreViewHelperAbstractConditionViewHelper->evaluateCondition() and handling has been removed.
  • Breaking: Method TYPO3FluidFluidCoreParserSyntaxTreeObjectAccessorNode->getAccessors() has been removed.
  • Breaking: Constant TYPO3FluidFluidCoreCompilerTemplateCompiler::SHOULD_GENERATE_VIEWHELPER_INVOCATION has been removed.
  • Breaking: Constant TYPO3FluidFluidCoreVariablesStandardVariableProvider::ACCESSOR_ARRAY has been removed.
  • Breaking: Constant TYPO3FluidFluidCoreVariablesStandardVariableProvider::ACCESSOR_GETTER has been removed.
  • Breaking: Constant TYPO3FluidFluidCoreVariablesStandardVariableProvider::ACCESSOR_ASSERTER has been removed.
  • Breaking: Constant TYPO3FluidFluidCoreVariablesStandardVariableProvider::ACCESSOR_PUBLICPROPERTY has been removed.
  • Breaking: Static property TYPO3FluidFluidCoreParserPatterns::$SCAN_PATTERN_ESCAPINGMODIFIER has been removed.
  • Breaking: Trait TYPO3FluidFluidCoreViewHelperTraitsParserRuntimeOnly has been removed.
  • Breaking: Interface TYPO3FluidFluidCoreParserSyntaxTreeExpressionParseTimeEvaluatedExpressionNodeInterface and its handling has been removed.
  • Breaking: Class TYPO3FluidFluidCoreVariablesVariableExtractor has been removed.
  • Breaking: Class TYPO3FluidFluidCoreCompilerViewHelperCompiler has been removed.
  • Breaking: Exception TYPO3FluidFluidCoreCompilerStopCompilingChildrenException and its handling has been removed.
  • Breaking: Test abstracts TYPO3FluidFluidTestsBaseTestCase and TYPO3FluidFluidTestsUnitTestCase have been removed.
  • Breaking: Using invalid namespace https://typo3.org instead of http://typo3.org (https vs. http) throws an exception
  • Important: Minimum PHP version has been raised to ^8.2