xtreamwayz/pimple-container-interop

此软件包已 废弃,不再维护。未建议替代软件包。

此项目为 Pimple 3 添加了 container-interop 兼容性。

1.0.0 2015-12-16 17:30 UTC

This package is auto-updated.

Last update: 2024-06-19 11:07:05 UTC


README

No Maintenance Intended

非常感谢您对这个项目的兴趣!开源是有回报的,但也可能令人疲惫。因此,此代码按现状提供,目前没有积极维护。我们邀请您查看代码,并在您的下一个项目中使用它,前提是您遵守所附许可协议!

不对代码的支持提供保证,也不承诺将审查或合并拉取请求。它是开源的,所以允许分支;只需确保给予应有的信用即可!

此容器扩展了 Pimple 3 容器。它还添加了来自 container-interop代理查找功能

使用方法

use Xtreamwayz\Pimple\Container;

$container = new Container();

现在您可以使用所有 Pimple 功能,并且还有 container-interop 的 hasget 函数。

代理

代理查找功能允许几个容器共享条目。它可以在其他容器中执行依赖项查找。可以通过 delegate($container) 函数添加。

$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';

一旦注册了代理并且主要容器中无法解析查找,它将按注册顺序尝试每个代理的 hasget 方法。