Feature: #108927 - Group providers in the Configuration module 

See forge#108927

Description 

The dropdown of the System > Configuration module now shows the configuration entries in groups, each with a heading, instead of one long list. The groups provided by the system extension are:

  • System & Infrastructure
  • Data & Content
  • Backend & Users
  • Sites
  • HTTP & Security
  • Events & Integrations
  • Rendering & Frameworks
  • Extensions

Providers tagged with lowlevel.configuration.module.provider can choose a group with the new optional tag attribute group :

EXT:my_extension/Configuration/Services.yaml
myextension.configuration.module.provider.myconfiguration:
    class: 'Vendor\Extension\ConfigurationModuleProvider\MyProvider'
    tags:
        - name: 'lowlevel.configuration.module.provider'
          identifier: 'myProvider'
          group: 'backend'
Copied!

The keys for these groups are core , data , backend , sites , requestHandling , events , frameworks and extensions . Any other value is used as the label of a custom group, either as a text or as a localization reference such as LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:group . Custom groups are shown after the functional groups and before Extensions. Providers without a group attribute, with an empty value or with the explicit value extensions are shown in the last group, Extensions. Empty groups are not displayed.

The attributes before and after continue to work and define the order of providers within a group.

Impact 

The Configuration module is easier to navigate. Existing providers keep working without changes and are shown in the group Extensions. Extension authors can opt in to a group by adding the group attribute.