php-simple/constructor-injection

本包最新版本(v1)没有提供许可信息。

一个非常简单的容器示例,它通过类构造函数注入依赖项。

v1 2023-02-01 17:35 UTC

This package is auto-updated.

Last update: 2024-09-29 21:34:02 UTC


README

一个非常简单的容器示例,它通过类构造函数注入依赖项

安装

  composer require php-simple/constructor-injection

用法/示例

bind() 方法

require_once __DIR__ . '/vendor/autoload.php';

class User
{
    public $foo;

    public function __construct(Foo $foo) 
    {
        $this->foo = $foo
    }
    
    public function foo()
    {
        return $this->foo->sayFoo();
    }
}

class Foo
{
    public function sayFoo()
    {
        return 'Foooo'
    }
}

$container = new \ConstructorInjection\Container();

$container->bind(User::class);

$userInstance = $container->getBinding(User::class)

// Foooo
$userInstance->foo();

带有闭包的 bind() 方法

$container->bind(User::class,function (){
    return new User();
});

$userInstance = $container->getBinding(User::class)

// Foooo
$userInstance->foo();

get() 方法

$userInstance = $container->get(User::class);

// Foooo
$userInstance->foo();

getBindings 方法()

  • 返回所有绑定的类
$bindings = $container->getBindings();

print_r($bindings);

//Array
//(
//    [User] => Closure Object
//        (
//        )
//
//)