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 ... }
Attributes
- #[AsAlias]
- 'features'
- $public: true
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 since v13.0 at any time.
'security.usePasswordPolicyForFrontendUsers',
'security.backend.enforceContentSecurityPolicy',
// Enabled since v12.0 at any time.
'subrequestPageErrors',
'yamlImportsFollowDeclarationOrder',
'security.frontend.htmlSanitizeParseFuncDefault',
'runtimeDbQuotingOfTcaConfiguration',
// Enabled since v11.0 at any time.
'fluidBasedPageModule',
// Enabled since v10.0 at any time.
'simplifiedControllerActionDispatching',
'unifiedPageTranslationHandling',
'felogin.extbase',
]
Methods
isFeatureEnabled()
Checks if a feature is active
public
isFeatureEnabled(string $featureName) : bool
Parameters
- $featureName : string
-
the name of the feature