flamecore/container

简单轻量级的依赖注入容器

v1.0.0 2020-08-12 22:44 UTC

This package is auto-updated.

Last update: 2024-09-13 07:51:17 UTC


README

Latest Stable Build Status Scrutinizer Coverage License

这个库提供了一个简单轻量级的依赖注入容器。

功能

  • 接口:扩展与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)