thumbtack / ttinjector
该包已被弃用,不再维护。未建议替代包。
使用依赖注入构建任何东西
1.0.4
2016-03-16 01:34 UTC
Requires
- php: >=5.4
Requires (Dev)
- phpunit/phpunit: 4.5.*
This package is not auto-updated.
Last update: 2023-09-30 11:06:23 UTC
README
这是一个简单的依赖注入器。
它分两个阶段工作。首先,您注册所有依赖项并描述它们之间的关系。然后,您从这些依赖项构建一个可以注入您添加的值的注入器。
安装
要安装,请使用 composer 并运行
composer require thumbtack/ttinjector
如何使用注入器
1. 创建一个Dependencies对象
use TT\injector\Dependencies; $dependencies = new Dependencies();
2. 添加一些依赖项
// Use register_value() to add constant values. $dependencies->register_value('current_user_id', 12345); // Use register_factory() to add things you don't want to construct unless used... $dependencies->register_factory('db_connection', [], function() { return Database::Connect(); }); // ...Or things that have dependencies of their own. $dependencies->register_factory( 'users_source' ['db_connection'], function ($db) { return function($user_id) use ($db) { return $db->query('users')->where_equals('user_id', $user_id); }; } );
3. 构建注入器
$injector = $dependencies->build_injector();
build_injector()
函数将检查您设置的依赖项中是否存在错误(缺少依赖项或依赖项循环)。
注入器对象是不可变的。
4. 注入您的依赖项!
function current_user($current_user_id, $users_source) { return $users_source($current_user_id); } $user = $injector->inject('current_user', ['current_user_id', 'users_source']);