PHPackages                             gilbertsoft/typo3-config-handling-extensions - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. gilbertsoft/typo3-config-handling-extensions

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

gilbertsoft/typo3-config-handling-extensions
============================================

TYPO3 Config Handling Extension support.

0.1.0(4y ago)12[1 PRs](https://github.com/GsTYPO3/config-handling-extensions/pulls)GPL-3.0-or-laterPHPPHP ^7.4 || ^8.0

Since Jun 10Pushed 4y agoCompare

[ Source](https://github.com/GsTYPO3/config-handling-extensions)[ Packagist](https://packagist.org/packages/gilbertsoft/typo3-config-handling-extensions)[ Docs](https://github.com/GsTYPO3/config-handling-extensions)[ Fund](https://www.paypal.me/SGilli)[ GitHub Sponsors](https://github.com/gilbertsoft)[ RSS](/packages/gilbertsoft-typo3-config-handling-extensions/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (9)Versions (3)Used By (0)

TYPO3 Config Handling Extensions
================================

[](#typo3-config-handling-extensions)

[![Packagist Version](https://camo.githubusercontent.com/a68533553c7eceb92608616b7b3fde7964b470f5f1e17bf6ba5036fc9e60a78e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f67696c62657274736f66742f7479706f332d636f6e6669672d68616e646c696e672d657874656e73696f6e73)](https://packagist.org/packages/gilbertsoft/typo3-config-handling-extensions)[![Packagist PHP Version Support](https://camo.githubusercontent.com/b9904e51c3bcd7739d8098fb5f048f56cbe440e2198acf45a8043abbca4e7f2f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f67696c62657274736f66742f7479706f332d636f6e6669672d68616e646c696e672d657874656e73696f6e73)](https://packagist.org/packages/gilbertsoft/typo3-config-handling-extensions)[![GitHub issues](https://camo.githubusercontent.com/157300703782d0527b3fc0fa51e6fb196556aae1a7b6c31dd39d08a7cb2137fe/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f47735459504f332f636f6e6669672d68616e646c696e672d657874656e73696f6e73)](https://github.com/GsTYPO3/config-handling-extensions/issues)[![GitHub forks](https://camo.githubusercontent.com/244e60ede9d0f31d4c051b516f6256ab652c8f8122f9cc26411dd5df5b92e462/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f47735459504f332f636f6e6669672d68616e646c696e672d657874656e73696f6e73)](https://github.com/GsTYPO3/config-handling-extensions/network)[![GitHub stars](https://camo.githubusercontent.com/749959d25a89f69b7399d9993051206fcb362187a2e2b8cdce296ebdcb4f61d3/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f47735459504f332f636f6e6669672d68616e646c696e672d657874656e73696f6e73)](https://github.com/GsTYPO3/config-handling-extensions/stargazers)[![GitHub license](https://camo.githubusercontent.com/09ea90d073c50307c3d66a9bad8b1025246489a588e8da30b77372524ba77ec6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f47735459504f332f636f6e6669672d68616e646c696e672d657874656e73696f6e73)](https://github.com/GsTYPO3/config-handling-extensions/blob/main/LICENSE)[![GitHub build](https://camo.githubusercontent.com/c63ae157547372170a5861981e0e06e9b6b88e63fd7faa92a3393d7aa170b860/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f47735459504f332f636f6e6669672d68616e646c696e672d657874656e73696f6e732f436f6e74696e756f7573253230496e746567726174696f6e25323028434929)](https://github.com/GsTYPO3/config-handling-extensions/actions/workflows/continuous-integration.yml)[![Coveralls](https://camo.githubusercontent.com/65c6b81c97ab70340e2292c7a74544ee8c9fbcbacacae765b7f1b8310f55a597/68747470733a2f2f696d672e736869656c64732e696f2f636f766572616c6c732f6769746875622f47735459504f332f636f6e6669672d68616e646c696e672d657874656e73696f6e73)](https://coveralls.io/github/GsTYPO3/config-handling-extensions)[![Contributor Covenant](https://camo.githubusercontent.com/4ae39ae593b602cf0ae07972b61c73728b77ec8e2cf40f579a2441948208036b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f6e7472696275746f72253230436f76656e616e742d322e312d3462616161612e737667)](https://github.com/GsTYPO3/config-handling-extensions/blob/main/CODE_OF_CONDUCT.md)

This package extends `helhum/typo3-config-handling` with an extension system that allows to create flexible configuration templates that can be bundled into Composer packages and thus easily usable in multiple projects.

Installation
------------

[](#installation)

Simply install the desired extensions, there is normally no need to directly install this package.

Look for available extensions on [Packagist](https://packagist.org/?type=typo3-config-handling-extension).

The package `helhum/typo3-config-handling` is automatically required by this package and can be omitted in or removed from your project. For safety, however, it can be additionally required to prevent accidental uninstall.

Configuration
-------------

[](#configuration)

To enable support for TYPO3 Config Handling Extensions, add an import line to your to your YAML configuration:

```
imports:
    - { resource: \Gilbertsoft\TYPO3\ConfigHandling\Extensions, type: class }
```

Imports are processed in the specified order, so the position in your configuration is very important. Later imports may override the configuration provided by the extensions again, and any previous configuration will be overridden by the extensions.

### Additional configuration in the project's `composer.json`

[](#additional-configuration-in-the-projects-composerjson)

Additionally it is possible to change the loading order of the extensions in your root `composer.json` in the `extra` section like this:

```
{
    "name": "vendor/project",
    "type": "project",
    "require": {
        "php": "^7.4 || ^8.0",
        "vendor/typo3-config-handling-extension1": "^1.0",
        "vendor/typo3-config-handling-extension2": "^1.0",
        "vendor/typo3-config-handling-extension3": "^1.0",
        "vendor/typo3-config-handling-extension4": "^1.0"
    },
    "extra": {
        "gilbertsoft/typo3-config-handling-extensions": {
            "extensions": {
                "vendor/typo3-config-handling-extension1": {
                    "before": ["vendor/typo3-config-handling-extension2", "vendor/typo3-config-handling-extension3"],
                    "after": ["vendor/typo3-config-handling-extension4"]
                }
            }
        }
    }
}
```

This will make sure `extension1` is loaded after `extension4` and before `extension2` and `extension3` are loaded.

Development of Extensions
-------------------------

[](#development-of-extensions)

The extension development is an easy task, best start with the [TYPO3 Config Handling Extension Template](https://github.com/GsTYPO3/config-handling-extension-template).

### The extension's `composer.json`

[](#the-extensions-composerjson)

The `type` of the package is the most important part and must be set to `typo3-config-handling-extension`. Only packages with this type will be considered for processing. Next, a class to be used must be properly defined. Without a class, the package will try to load the configuration from the `config` folder using `GlobFileReader`. The extension loading order can be changed with the `before` and `after` keys by specifying a list of package names.

```
{
    "name": "vendor/typo3-config-handling-extension-template",
    "description": "TYPO3 Config Handling Extension Template.",
    "license": "GPL-3.0-or-later",
    "type": "typo3-config-handling-extension",
    "require": {
        "php": "^7.4 || ^8.0",
        "gilbertsoft/typo3-config-handling-extensions": "^0.1.0"
    },
    "autoload": {
        "psr-4": {
            "Vendor\\TYPO3\\ConfigHandling\\Extension\\Template\\": "src"
        }
    },
    "extra": {
        "gilbertsoft/typo3-config-handling-extension": {
            "class": "Vendor\\TYPO3\\ConfigHandling\\Extension\\Template\\ConfigProvider",
            "force-config-dir": false,
            "before": [],
            "after": []
        }
    }
}
```

#### Keys in detail

[](#keys-in-detail)

- `class`: The class to be created to return the configuration. This class must implement the `Gilbertsoft\TYPO3\ConfigHandling\Extensions\ConfigProviderInterface`interface. Make sure that two backslashes are used according to the JSON definition.
- `force-config-dir`: If a class is set, the `config` folder is ignored by default. In the rare case that you want to load the configuration from the provider and the `config` folder, set this value to `true`.
- `before`: An array of package names, this extension is loaded before these packages.
- `after`: An array of package names, this extension is loaded after these packages.

### The configuration provider class

[](#the-configuration-provider-class)

The provider is responsible for the return of a configuration array and is the core of an extension. Here you implement your configuration logic, which of course can also contain only a simple configuration array or is built dynamically depending on some conditions.

Some more information is included in the interface definition.

#### User configurable options

[](#user-configurable-options)

An options array is read from the root `composer.json` and passed to provider methods. This makes it possible for the user to configure the provider as needed. An option consists of a key and a value. String, integer and boolean options are supported.

```
"extra": {
    "gilbertsoft/typo3-config-handling-extensions": {
        "extensions": {
            "vendor/typo3-config-handling-extension-template": {
                "options": {
                    "string-option": "string",
                    "int-option": 123,
                    "bool-option": true
                }
            }
        }
    }
}
```

The options are read during the autoload dump. After changing the root `composer.json`, `composer dump-autoload` must be executed.

Feedback / Bug reports / Contribution
-------------------------------------

[](#feedback--bug-reports--contribution)

Bug reports, feature requests and pull requests are welcome in the [GitHub repository](https://github.com/GsTYPO3/typo3-config-handling-extensions).

For support questions or other discussions please use the [GitHub Discussions](https://github.com/GsTYPO3/typo3-config-handling-extensions/discussions).

License
-------

[](#license)

This package is licensed under the [GNU GENERAL PUBLIC LICENSE](https://github.com/GsTYPO3/typo3-config-handling-extensions/blob/main/LICENSE.md).

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1485d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/25326036?v=4)[Gilbertsoft](/maintainers/gilbertsoft)[@gilbertsoft](https://github.com/gilbertsoft)

---

Top Contributors

[![gilbertsoft](https://avatars.githubusercontent.com/u/25326036?v=4)](https://github.com/gilbertsoft "gilbertsoft (11 commits)")

---

Tags

confighandlingextensionsTYPO3 CMS

### Embed Badge

![Health badge](/badges/gilbertsoft-typo3-config-handling-extensions/health.svg)

```
[![Health](https://phpackages.com/badges/gilbertsoft-typo3-config-handling-extensions/health.svg)](https://phpackages.com/packages/gilbertsoft-typo3-config-handling-extensions)
```

###  Alternatives

[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[derhansen/sf_event_mgt

Event management and registration - Configurable event management and registration extension based on ExtBase and Fluid

66338.4k10](/packages/derhansen-sf-event-mgt)[brotkrueml/schema

Embedding schema.org vocabulary - API and view helpers for schema.org markup

34653.7k16](/packages/brotkrueml-schema)[yoast-seo-for-typo3/yoast_seo

Yoast SEO for TYPO3

511.7M9](/packages/yoast-seo-for-typo3-yoast-seo)[jweiland/events2

Events 2 - Create single and recurring events

2166.7k3](/packages/jweiland-events2)[t3sbs/t3sbootstrap

Startup extension to use bootstrap 5 classes, components and more out of the box. Example and info: \[www.t3sbootstrap.de\](https://www.t3sbootstrap.de)

2416.4k](/packages/t3sbs-t3sbootstrap)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
