kaihempel/simpledi

简单的依赖注入容器

1.1.0 2016-07-15 22:11 UTC

This package is not auto-updated.

Last update: 2024-09-22 07:13:56 UTC


README

简单的PHP依赖注入包

Build Status Scrutinizer Code Quality Code Coverage

这个依赖注入容器基于将对象构造代码作为闭包的思想。因此,每个依赖都可以用更少的约定限制来构建。

通过Composer安装simpledi。

  "require": {
    "kaihempel/simpledi": "1.1.*"
  }

创建依赖注入容器实例

  $di = new \SimpleDI\SimpleDI();

添加实例创建的闭包

  $di->add('author', function($name) {
    return new Author($name);
  });

添加名为"autor"的闭包后,可以通过调用魔法get方法来执行闭包

  $author = $di->getAuthor($name);

要创建具有进一步依赖的实例,可以使用"使用"关键字将依赖注入容器提交给闭包

  $di->add('book', function($name) use ($di) {
    return new Book($di->getAuthor($name));
  });

如上所述,"Book"实例将使用新的作者实例进行初始化。

容器有一个存储来保存创建的对象。这个功能必须在调用闭包代码之前通过调用"getStored()"方法来启用

  $storedBook = $di->getStored()
                   ->getBook($name);

如果没有存储Book实例,闭包执行将保存新的实例到存储中。