flamecore / container
简单轻量级的依赖注入容器
v1.0.0
2020-08-12 22:44 UTC
Requires
- php: >=7.2
- psr/container: 1.*
Requires (Dev)
- phpunit/phpunit: 8.*
- scrutinizer/ocular: 1.6.*
This package is auto-updated.
Last update: 2024-09-13 07:51:17 UTC
README
这个库提供了一个简单轻量级的依赖注入容器。
功能
-
接口:扩展与PSR-11兼容的容器接口
-
ModifiableContainerInterface
提供了写入和删除容器条目的方法。 -
DefinableContainerInterface
提供了定义容器条目的方法。 -
FactoryContainerInterface
提供了一个从工厂条目创建新对象实例的方法。 -
LockableContainerInterface
提供了锁定和解锁容器条目的方法。
-
-
类:基于接口的高级和功能完整的容器实现
-
Container
实现了定义、写入、实例化和删除容器条目的常见功能。 -
LockableContainer
扩展了上述容器,以启用锁定和解锁容器条目。
-
使用方法
要使用 API,请包含供应商自动加载器并使用这些类
namespace Acme\MyApplication; use FlameCore\Container\Container; $container = new Container();
您可以在容器上像平常一样使用 get()
和 has()
。您还可以使用 set()
和 remove()
条目。
$container->set('foo', new Configuration(...)); if ($container->has('foo')) { $value = $container->get('foo'); // Returns Acme\MyApplication\Configuration object $container->remove('foo'); }
您还可以使用对象工厂
$container->set('bar', function () { return new Configuration(...); }); $value2 = $container->get('bar'); // Returns Acme\MyApplication\Configuration object
如果条目未设置,您还可以获取回退值
$value3 = $container->getOr('foobar', function () { return new Fallback(...); }); // Returns Acme\MyApplication\Fallback object
安装
如果您系统上尚未安装,请安装 Composer。
要安装库,请运行以下命令并获取最新版本
$ php composer.phar require flamecore/container
要求
- 您必须在系统上安装至少 PHP 版本 7.2。
贡献者
如果您想贡献力量,请首先查看 CONTRIBUTING 文件。
感谢贡献者
- Christian Neff (secondtruth)