mouf / alias-container
此包包含一个非常简约的依赖注入容器,可以用于在现有容器中创建实例的别名。
v2.0.0
2020-04-15 21:05 UTC
Requires
- psr/container: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.5
Provides
- psr/container-implementation: 1.0.0
README
此包包含一个非常简约的依赖注入容器,可以用于在现有容器中创建实例的别名。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 容器之间的互操作性。最终目标是确保多个容器可以通过共享条目(一个容器可能使用来自另一个容器的条目等)相互通信。