Features
A lightweight API class to check if a feature is enabled.
Features are simple options (true/false), and are stored in the global configuration array $TYPO3_CONF_VARS[SYS][features].
For disabling or enabling a feature the "ConfigurationManager" should be used.
-- Naming --
Feature names should NEVER named "enable" or having a negation, or containing versions or years "enableFeatureXyz" "disableOverlays" "schedulerRevamped" "useDoctrineQueries" "disablePreparedStatements" "disableHooksInFE"
Proper namings for features "ExtendedRichtextFormat" "NativeYamlParser" "InlinePageTranslations" "TypoScriptParserIncludesAsXml" "NativeDoctrineQueries"
Ideally, these feature switches are added via the Install Tool or via FactoryConfiguration and can be used for Extensions as well.
--- Usage ---
if (GeneralUtility::makeInstance(Features::class)->isFeatureEnabled('InlineSvg')) { ... do stuff here ... }
Table of Contents
Properties
- $alwaysActiveFeatures : array<string|int, mixed>
- A list of features that are always activated (mainly happens if a previous feature switch is now always "turned on" to enforce a behaviour, but still valid for extension authors to ensure the feature switch returns "enabled" for future versions.
Methods
- isFeatureEnabled() : bool
- Checks if a feature is active
Properties
$alwaysActiveFeatures
A list of features that are always activated (mainly happens if a previous feature switch is now always "turned on" to enforce a behaviour, but still valid for extension authors to ensure the feature switch returns "enabled" for future versions.
protected
array<string|int, mixed>
$alwaysActiveFeatures
= [
// Enabled in v11.0 at any time, feature switch will be completely ignored in TYPO3 v12.
'fluidBasedPageModule',
// Enabled in v10.0 at any time, feature switch will be completely ignored in TYPO3 v11.
'simplifiedControllerActionDispatching',
'unifiedPageTranslationHandling',
'felogin.extbase',
]
Usually, this list is kept for 1-2 major versions.
Methods
isFeatureEnabled()
Checks if a feature is active
public
isFeatureEnabled(string $featureName) : bool
Parameters
- $featureName : string
-
the name of the feature