PHPackages                             sandstorm/configloader - 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. sandstorm/configloader

ActiveNeos-package[Utility &amp; Helpers](/categories/utility)

sandstorm/configloader
======================

1.0.0(7y ago)281[1 PRs](https://github.com/sandstorm/ConfigLoader/pulls)PHP

Since Mar 6Pushed 5y ago8 watchersCompare

[ Source](https://github.com/sandstorm/ConfigLoader)[ Packagist](https://packagist.org/packages/sandstorm/configloader)[ RSS](/packages/sandstorm-configloader/feed)WikiDiscussions master Synced today

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

External Configuration Loader for Neos Flow
===========================================

[](#external-configuration-loader-for-neos-flow)

This package is capable of loading configuration of type Settings from external sources, such as Files. It can also reformat credentials that are e.g. stored in an env variable as JSON so that it can be used by Flow. It is 100% extensible so you can define your own Sources and Transformations.

Using this package
------------------

[](#using-this-package)

This package was developed for the following use case: A Flow application needs to be run on a VM at a cloud provider. This cloud provider stores environment information, such as the database name and password, in a JSON-formatted environment variable. Here's a short example:

```
{
  "databases": [
    {
      "label": "mariadb",
      "name": "cf-neos-db",
      "instance_name": "cf-neos-db",
      "credentials": {
        "hostname": "foo.example.com",
        "name": "DBNAME_ASDF1234",
        "username": "username",
        "password": "password"
      }
    }
  ]
}

```

Imagine this information is stored in an environment variable called `SERVICES`. This package's task is to hook into the boot process of Flow very early, read the env variable, transform the JSON into an associative array and inject it into the regular configuration. Here is the configuration needed for this job:

```
Sandstorm:
  ConfigLoader:
    externalConfig:
      # This key can be chosen arbitrarily for each config source
      'MyJson':
        # The source's job is to read config from somewhere.
        # The EnvSource is capable of reading an environment variable.
        source: Sandstorm\ConfigLoader\Source\EnvSource
        sourceOptions:
          name: 'SERVICES'
        # A transformation transforms the value provided by source.
        # The JsonTransformation parses a JSON string and returns an
        # associative array that is stored by this package.
        transformation: Sandstorm\ConfigLoader\Transformation\JsonTransformation

# Now, you can inject the loaded transformation into the place where you want
# it to be. Use this format:
# %EXT:ExternalConfigKey.some.path%
Neos:
  Flow:
    persistence:
      backendOptions:
        host: '%EXT:MyJson.databases.0.credentials.hostname%'
        dbname: '%EXT:MyJson.databases.0.credentials.name%'
        user: '%EXT:MyJson.databases.0.credentials.username%'
        password: '%EXT:MyJson.databases.0.credentials.password%'

```

If you remove the caches and display the configuration, this is what you would see. The credentials were parsed from the JSON and injected into the config.

```
./flow configuration:show --path Neos.Flow.persistence.backendOptions
Configuration "Settings: Neos.Flow.persistence.backendOptions":

host: foo.example.com
dbname: DBNAME_ASDF1234
user: username
password: password

```

Extensibility
-------------

[](#extensibility)

It is extremely easy to create your own custom Sources and Transformations. Just have them implement the `SourceInterface` / `TransformationInterface`provided with this package, and configure them to be used like in the example above. This way, you can load any configuration format (XML, JSON, ...) from any source.

TODOs
-----

[](#todos)

This package ignores Application context and injects the same values no matter whether you are in Development or Production (or any other) context. This is a missing feature.

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

Established project with proven stability

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

2621d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2ced0d63cfdae881c32128c7f66451a013d3e24d9eed210d6a846b6d8e95fa3b?d=identicon)[sandstorm](/maintainers/sandstorm)

---

Tags

flowframeworkneos-cmsneos-flowneos-pluginneoscms

### Embed Badge

![Health badge](/badges/sandstorm-configloader/health.svg)

```
[![Health](https://phpackages.com/badges/sandstorm-configloader/health.svg)](https://phpackages.com/packages/sandstorm-configloader)
```

###  Alternatives

[neos/eel

The Embedded Expression Language (Eel) is a building block for creating Domain Specific Languages

122.0M27](/packages/neos-eel)[neos/form

Extensible and flexible API for building web forms

18853.0k40](/packages/neos-form)[neos/fusion-form

Fusion Form

19724.3k31](/packages/neos-fusion-form)[ttree/scheduler

Simple task scheduler for Neos Flow Framework

21108.8k1](/packages/ttree-scheduler)[avency/neos-vardump

Neos VarDump Package

147.1k](/packages/avency-neos-vardump)[flowpack/task

A Task scheduler for Neos Flow

1136.3k1](/packages/flowpack-task)

PHPackages © 2026

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