lava/container

A fast and intuitive dependency injection container.

v0.91 2020-03-30 16:57 UTC

This package is auto-updated.

Last update: 2024-04-28 12:16:18 UTC


README

A fast and intuitive dependency injection container.

Installation

    composer require lava/container

Usage

创建一个容器实例

    require __DIR__."/vendor/autoload.php";
    $container = new \Lava\Container\Container();

快速上手

    class B{
        protected $a;
        function __construct(A $a)
        {
            $this->a = $a;
        }
    }
    class A{
    }

    // 绑定类实例
    $container->bind("a",new A);
    // 传类名 他会自动帮你实例化A类
    $container->bind("b","B");
    // 使用闭包动态构建A类
    $container->bind('a',function($container){
        return new A;
    });
    //绑定自身
    $container->bind("A");

    //绑定一个共享实例
    $container->singleton("A",function(){
        return new A;
    });

    //绑定会返回一个实例构建器 你可以通过他来写别名或者覆盖旧的构建器
    $container->bind("A")->setAlias("b")->setBuilder(function(){});
    

License

Apache2