PHP 注入库

维护者

详细信息

github.com/renshan1990/tc

源代码

问题

安装次数: 16

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 2

分支: 0

类型:

1.0.0 2016-10-15 13:37 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:25:59 UTC


README

PHP 注入库。

安装

composer require renshan/tc

使用方法

定义无参数的服务

namespace Foo;

class Foo 
{
	public function foo()
	{
		// Do anything here
	}
}
use Tc\Container;


$container = new Container;

$defKey = 'service.foo';
$defMap = 'Foo\Foo';

$container->register($defKey, $defMap);

定义带参数的服务

namespace Bar;

use Foo\Foo;

class Bar
{
	/**
		* This class need a parameter whic a instance of Foo, and a parameter $bar
		*/
	public function constructor(Foo $foo, $bar)
	{
	}

	public function bar()
	{
		// Do anything here
	}
}

然后你可以定义一个类似这样的服务

$container = new Container;

$defKey = 'service.bar';
$defMap = 'Bar\Bar';
$params = ['@service.foo', 'bar']; // Be sure the position of parameters

$container->register($defKey, $defMap, $params);

最终,你现在可以使用你的服务了

$foo = $container->get('service.foo');
$bar = $container->get('service.bar');

并且你可以获取一个原始服务

$contnainer->raw('service.foo');

默认情况下,一个服务将生成一个map类的唯一实例。