xtreamwayz/pimple-container-interop

This project adds container-interop compatibility to Pimple 3.

1.0.0 2015-12-16 17:30 UTC

README

Build Status

This container extends the Pimple 3 container. It also adds the delegate lookup feature from container-interop.

Usage

use Xtreamwayz\Pimple\Container;

$container = new Container();

And now you can use all Pimple features, and also have the has and get functions from container-interop.

Delegates

The delegate lookup feature allows several containers to share entries. It can perform dependency lookups in other containers. They can be added with the delegate($container) function.

$container = new Xtreamwayz\Pimple\Container;
$container['hi'] = 'welcome';

$delegate1 = new Acme\Container\DelegateContainer;
$delegate1['foo'] = 'bar';
$container->delegate($delegate1);

$delegate2 = new Xtreamwayz\Pimple\Container;
$delegate2['baz'] = 'qux';
$container->delegate($delegate2);

// Resolve dependency from main $container
$container->has('hi'); // true
$container->get('hi'); // returns 'welcome';

// Resolve dependency from $delegate1
$container->has('foo'); // true
$container->get('foo'); // returns 'bar';

// Resolve dependency from $delegate2
$container->has('baz'); // true
$container->get('baz'); // returns 'qux';

Once the delegate has been registered and a lookup is not resolved in the main container, it tries the has and get methods of each delegate in the order it was registered.