Pimple-container-interop
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.