mead-steve/container

此包已被废弃且不再维护。没有建议替代包。

简单的依赖注入容器。

dev-master 2013-12-19 16:52 UTC

This package is auto-updated.

Last update: 2019-10-05 15:09:36 UTC


README

非常基础的依赖注入容器。

构建状态

分支 状态
master Build Status

示例用法

在容器中设置资源

use \Meadsteve\Container\Container;
use \Meadsteve\Container\Singleton;

$MyContainer = new Container();

$MyContainer->DependancyOne = new Dependancy();
$MyContainer->MyObject = function(Container $Container) {
	return new MyObject($Container->DependancyOne);
};

当你需要MyObject实例时

$InstanceOfMyObject = $MyContainer->MyObject;

对于一些可能不希望每次都运行构造逻辑的重型对象,你可能想使用单例模式。这可以通过提供的类实现

$MyContainer->DBUser = "DBGuy";
$MyContainer->Password = "SuperSecret10";
$MyContainer->DBBasedObject = new Singleton(function(Container $Container) {
	return new DBObject($Container->DBUser, $Container->Password);
});

然后以完全相同的方式检索

$DBInstance = $MyContainer->DBBasedObject