油罐车/油罐车

此包已弃用且不再维护。未建议替代包。

油罐车是一个采用单例模式实现的对象容器

v1.1.0 2014-04-30 14:19 UTC

This package is auto-updated.

Last update: 2022-02-01 12:33:14 UTC


README

油罐车是一个具有单例模式实现的灵活对象容器

如何包含?

直接在PHP代码中通过代码包含 Tanker

require_once '/path/to/Tanker/Container.php';

或使用 composer。将其添加到 composer.json 文件中

"require": {
    "tanker/tanker": "1.1.*@dev"
}

如何导入?

使用 use 语句导入类

use Tanker\Container as Tanker;

如何使用?

使用 new 操作符 创建 Tanker 实例

$tanker = new Tanker;

添加 对象到容器中

$obj = new StdClass(); // create some object
$tanker->set('object', $obj); // add object to container with name using setter

或者简单地使用 属性重载

$tanker->object = $obj;

或者简单地使用 数组访问

$tanker['object'] = $obj;

容器中获取对象

$obj = $tanker->get('object'); // get object by name from container using getter

或者简单地使用 属性重载

$obj = $tanker->object;

或者简单地使用 数组访问

$obj = $tanker['object'];

如何使用服务?

服务是一个更复杂的对象,它与其他对象一起工作。为了提高性能和节省资源,您需要在需要使用它时直接创建其实例。这完全由 Tanker 处理,您只需定义使用匿名函数的服务

$tanker->set('mailer', function(){
        return new Mailer();
    });

邮件发送器实例将在第一次调用服务时创建

$tanker->get('mailer');

您可以使用 use 语句简单地将依赖项注入到传递给匿名函数的 Tanker 对象中

$tanker->set('mailer', function() use ($tanker) {
        return new Mailer($tanker->get('config'));
    });

里面有什么?

很简单,不是吗? :)