babacooll / imbrix
PHP项目的依赖管理器
v0.0.3
2015-04-28 17:55 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: 4.5.*
This package is auto-updated.
Last update: 2024-09-12 04:21:16 UTC
README
Imbrix是一个针对小型PHP项目的完全单元测试的依赖管理器。
仍在进行中
- DependencyManager的包装器,以便通过单例方式获得对其的静态访问
安装
Imbrix可以通过composer获取
$ php composer.phar require babacooll/imbrix ~0.0.3
如何使用
你需要做的就是实例化一个新的DependencyManager
<?php use Imbrix\DependencyManager; $depManager = new DependencyManager();
此DependencyManager将包含你的服务和参数。
服务
你可以使用addService方法轻松添加你的服务,第一个参数是你的服务名称,第二个是返回你的服务的闭包
<?php $depManager->addService('myService', function () { return new MyService(); });
你可以使用get方法检索你的服务
<?php $depManager->get('myService');
参数
对于参数也存在相同的方法,第一个参数是你的参数名称,第二个是字符串值
<?php $depManager->addParameter('myParameter', 'value');
你可以使用get方法检索你的参数
<?php $depManager->get('myParameter');
注入
你可以将参数注入到服务中,将服务注入到服务中(需要多少次就注入多少次)。你只需要注入你想要注入的服务/参数的名称
<?php // Injection of a parameter into a service $depManager = new DependencyManager(); $depManager->addParameter('myParameter', 'value'); $depManager->addService('myService', function ($myParameter) { return new MyService($myParameter); });
参数/服务的定义顺序不影响,因为当你调用get方法时,你的服务将在整个定义之后实例化(而不是之前)。
以下是一个更复杂的示例
<?php $depManager = new DependencyManager(); $depManager->addParameter('myParameter', 'value'); $depManager->addService('myService', function ($myParameter) { return new MyService($myParameter); }); $depManager->addService('mySecondService', function ($myService, $myParameter) { return new MySecondService($myService, $myParameter); }); // We suppose MySecondService has both a getMyService() and a getParameter() method and the Service a getParameter() echo $depManager->get('mySecondService')->getMyService()->getParameter(); echo $depManager->get('mySecondService')->getParameter(); // Both will return "value"
请随时提供反馈!