mouf/alias-container

此包包含一个非常简约的依赖注入容器,可以用于在现有容器中创建实例的别名。

v2.0.0 2020-04-15 21:05 UTC

This package is auto-updated.

Last update: 2024-09-16 06:43:07 UTC


README

Latest Stable Version Latest Unstable Version License Scrutinizer Code Quality SensioLabsInsight Build Status Coverage Status

此包包含一个非常简约的依赖注入容器,可以用于在现有容器中创建实例的别名。Alias-container 与 container-interop 兼容,旨在与其他容器一起使用。本身,Alias-container 不存储任何条目。它只能用于在 其他容器中创建实例的别名

您可以使用 AliasContainer 为不支持此功能的任何容器添加别名支持。

安装

在您的项目中使用 AliasContainer 之前,将其添加到您的 composer.json 文件中

$ ./composer.phar require mouf/alias-container ~1.0

在容器中定义别名

创建别名容器只需创建一个 AliasContainer 实例。该 AliasContainer 类接受两个参数

  • 一个 代理查找容器(例如,我们将查找别名的容器)
  • 别名列表,作为 字符串的关联数组
use Mouf\AliasContainer;
use Interop\Container\ContainerInterface;

$aliasContainer = new AliasContainer($rootContainer, [
	"myAlias"=>"myInstance",
	"myAlias2"=>"myInstance2"
]);

条目列表是一个关联数组。

  • 键是创建别名的标识符
  • 值是要别名的条目的标识符

从容器中获取条目

从容器中获取条目非常简单,只需调用 get 方法

$myInstance = $aliasContainer->get('myAlias');

向容器中添加别名

您可以使用 set 方法添加新别名。

$aliasContainer->set('newAlias', 'myInstance');
请注意,在容器中初始化别名比递归调用 set 方法更有效。

从容器中删除别名

您可以使用 remove 方法添加新别名。

$aliasContainer->remove('myAlias');

为什么需要这个包?

此包是长期努力的一部分,旨在实现 DI 容器之间的互操作性。最终目标是确保多个容器可以通过共享条目(一个容器可能使用来自另一个容器的条目等)相互通信。