kaihempel / simpledi
简单的依赖注入容器
1.1.0
2016-07-15 22:11 UTC
Requires
- php: >=5.4.0
- kaihempel/simplehash: 1.0.*
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.6.*
This package is not auto-updated.
Last update: 2024-09-22 07:13:56 UTC
README
简单的PHP依赖注入包
这个依赖注入容器基于将对象构造代码作为闭包的思想。因此,每个依赖都可以用更少的约定限制来构建。
通过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实例,闭包执行将保存新的实例到存储中。