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

Return values
bool

        
On this page

Search results