renshan / tc
PHP 注入库
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类的唯一实例。