Skip to content
This repository has been archived by the owner on Jun 19, 2024. It is now read-only.

xtreamwayz/pimple-container-interop

Repository files navigation

No Maintenance Intended

Thank you so much for being interested in this project! Open Source is rewarding, but it can also be exhausting. Therefor this code is provided as-is, and is currently not actively maintained. We invite you to peruse the code and even use it in your next project, provided you follow the included license!

No guarantee of support for the code is provided, and there is no promise that pull requests will be reviewed or merged. It’s open source, so forking is allowed; just be sure to give credit where it’s due!


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.