frostealth/php-container

Simple Dependency Injection Container

2.0.0 2015-11-09 08:31 UTC

This package is not auto-updated.

Last update: 2024-04-13 13:25:40 UTC


README

Simple Dependency Injection Container.

Installation

Run the Composer command to install the latest stable version:

composer require frostealth/php-container @stable

Usage

use frostealth\Container\Container;

$container = new Container();

// ...

// injecting simple values
$container->set('foo', 'bar'); // or $container->foo = 'bar';

// get its value
$value = $container->get('foo');  // or $value = $container->foo;

// ...

// resources 
$container->set('object', function ($container) {
    return new MyObject($container->foo);
});

// get a new instance
$object = $container->get('object');

// ...

// singleton resources
$container->singleton('log', function ($container) {
    return new MyLog($container->object);
});

// get log resource
$log = $container->get('log');

Dependency Injection

use Interop\Container\ContainerInterface;

class MyClass
{
    /**
     * @var ContainerInterface
     */
    protected $container;

    /**
     * @param ContainerInterface $container
     */
    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }
}

License

The MIT License (MIT). See LICENSE.md for more information.