Simple and lightweight Dependency Injection Container

v1.0.0 2020-08-12 22:44 UTC

This package is auto-updated.

Last update: 2024-04-13 07:02:22 UTC


Latest Stable Build Status Scrutinizer Coverage License

This library provides a simple and lightweight Dependency Injection Container.


  • Interfaces: Extended container interfaces compatible with PSR-11

    • ModifiableContainerInterface exposes methods to write and remove container entries.

    • DefinableContainerInterface exposes methods to define container entries.

    • FactoryContainerInterface exposes a method to create new object instances from a factory entry.

    • LockableContainerInterface exposes methods to lock and unlock container entries.

  • Classes: Advanced and feature-complete container implementations based on the interfaces

    • Container implements common features like defining, writing, instantiating and removing container entries.

    • LockableContainer extends the above container to enable locking and unlocking of container entries.


To make use of the API, include the vendor autoloader and use the classes:

namespace Acme\MyApplication;

use FlameCore\Container\Container;

$container = new Container();

You can use get() and has() on the container as usual. You can also set() and remove() entries.

$container->set('foo', new Configuration(...));
if ($container->has('foo')) {
    $value = $container->get('foo'); // Returns Acme\MyApplication\Configuration object

You can also use object factories:

$container->set('bar', function () {
    return new Configuration(...);
$value2 = $container->get('bar'); // Returns Acme\MyApplication\Configuration object

You can also get a fallback value if an entry is not set:

$value3 = $container->getOr('foobar', function () {
    return new Fallback(...);
}); // Returns Acme\MyApplication\Fallback object


Install Composer if you don't already have it present on your system.

To install the library, run the following command and you will get the latest version:

$ php composer.phar require flamecore/container


  • You must have at least PHP version 7.2 installed on your system.


If you want to contribute, please see the CONTRIBUTING file first.

Thanks to the contributors:

  • Christian Neff (secondtruth)