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(3y ago)12[1 PRs](https://github.com/GsTYPO3/config-handling-extensions/pulls)GPL-3.0-or-laterPHPPHP ^7.4 || ^8.0

Since Jun 10Pushed 3y 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 1mo ago

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 14% 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

1433d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a01278b3ca05356bedf239e56f45a25c11cd0423ddd8ccd7063949b86ca3cf21?d=identicon)[gilbertsoft](/maintainers/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

[derhansen/sf_event_mgt

Configurable event management and registration extension based on ExtBase and Fluid

64313.9k6](/packages/derhansen-sf-event-mgt)[brotkrueml/schema

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

33584.6k13](/packages/brotkrueml-schema)[causal/extractor

This extension detects and extracts metadata (EXIF / IPTC / XMP / ...) from potentially thousand different file types (such as MS Word/Powerpoint/Excel documents, PDF and images) and bring them automatically and natively to TYPO3 when uploading assets. Works with built-in PHP functions but takes advantage of Apache Tika and other external tools for enhanced metadata extraction.

16244.5k](/packages/causal-extractor)[typo3-themes/themes

TYPO3 THEMES

3642.6k2](/packages/typo3-themes-themes)[jweiland/events2

Events 2 - Create single and recurring events

2062.4k2](/packages/jweiland-events2)[mfd/ai-filemetadata

Automatically generates FAL metadata for files by means of public LLMs

1142.1k](/packages/mfd-ai-filemetadata)

PHPackages © 2026

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