monotek/ dependency-inject
经过验证和测试的PHP最小化依赖注入
v1.0.1
2016-09-03 13:42 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-21 09:22:07 UTC
README
简单来说,这个包包含两个类。类Dependency
处理依赖和资源的定义。类Inject
处理在实例化对象时自动注入已定义的依赖。
定义一个依赖就像这样简单
Dependency::set("database", function($param = false) {
return new Database();
});
使用一个依赖就像这样简单
class UsesDatabase extends Inject
{
public $inject = array("database");
public function process()
{
$db = $this->getDatabase("param");
}
}
定义的依赖将仅在它们实际使用时创建实例。如果依赖未被使用,则不会实例化,以使执行PHP代码时的开销尽可能小。
允许向依赖传递参数。这样,您可以使用一个实用依赖实例化器,该实例化器会根据参数返回数据。
如果您想在实例中覆盖一个依赖
$object->setDatabase($object_or_callback);
每次调用getDatabase
都会返回该调用的结果或传递给setDatabase
的值。
请参阅单元测试以获取更多使用此包的示例。
2014 (c) Tit Petrič, Monotek d.o.o.