corex/ioc

此包已被弃用且不再维护。作者建议使用 corex/container 包。

CoRex IoC

1.0.2 2019-03-17 15:30 UTC

This package is auto-updated.

Last update: 2020-04-15 05:14:25 UTC


README

License Build Status codecov

这是一个简单的容器,用于管理类依赖关系并执行依赖注入。

方法。

  • getInstance() - 获取容器实例。
  • clear() - 清除容器中的所有绑定和实例。
  • getBindings() - 获取绑定。
  • getBinding() - 获取特定绑定。
  • has() - 检查类或接口是否已绑定。
  • hasInstance() - 检查类或接口是否已实例化。
  • isShared() - 检查类或接口是否共享/是否为单例。
  • isSingleton() - 检查类或接口是否共享/是否为单例。
  • forget() - 忘记指定的绑定和实例。
  • bind() - 绑定类或实例。
  • singleton() - 将类或实例绑定为共享/单例。
  • instance() - 在现有绑定上设置实例。
  • make() - 创建类或接口的实例。

创建容器。

// Create new container.
$container = new Container();

// Create/use existing container.
$container = Container::getInstance();

创建未绑定的类。

$myClass = Container::getInstance()->make(MyClass::class);

创建具有绑定和参数的类。

$container = Container::getInstance();

$container->bind(MyClassInterface::class, MyClass::class);

$myClass = $container->make(MyClass::class, [
    'test' => 'my.value'
]);
  • 通过绑定接口创建类时,将检查实例类是否实现了绑定接口。
  • 通过绑定基类创建类时,将检查实例类是否扩展了绑定基类。