gorka / pimp
该软件包已被废弃,不再维护。未建议替代软件包。
简单的依赖注入容器
v3.0.2
2015-10-06 06:22 UTC
Requires
- php: >=5.5.0
- beberlei/assert: ^2.4
- container-interop/container-interop: ^1.1
Requires (Dev)
- ext-xdebug: >=2.1.4
- halleck45/phpmetrics: ^1.3
- henrikbjorn/phpspec-code-coverage: ^1.0
- phing/phing: ^2.12
- phpspec/phpspec: ^2.3
- phpunit/phpunit: ~4.6
- sensiolabs/security-checker: ^3.0
- sjparkinson/static-review: ^5.1
- squizlabs/php_codesniffer: ^2.3
Provides
This package is not auto-updated.
Last update: 2021-07-24 00:55:16 UTC
README
⚠️ 该项目未维护,可能会最终被移除。请自行承担风险使用。
Pimp:简单的依赖注入容器
Pimp 是一个受 Pimple 启发的 PHP 依赖注入容器,并实现了对 Container Interop 的支持。
向后兼容性说明
版本 3.0.0 引入了一个重大向后兼容性中断,以符合容器互操作规范。在 Pimp 的先前版本中,可以在容器本身中引入配置值;现在不再可能,请改用 配置管理器。
安装
使用 composer,在项目根目录下运行
composer require gorka/pimp
容器
简单用例
use Gorka\Pimp\Container;
use Gorka\Pimp\ServiceFactory;
$container = new Container([
'serviceOne' => function ($c) {
return new MyService();
},
'serviceTwo' => function ($c) {
return new MyOtherService($c->get('serviceOne'));
}
]);
$service = $container->get('serviceOne');
初始化后,您还可以添加新的服务或服务工厂
$container->add('ServiceThree', function() { return new MyAwesomeService(); });
默认情况下,Pimp 每次调用 get() 时都会返回相同的实例。如果您希望每次都获取一个新的实例,则可以使用 ServiceFactory。
$service1 = $container->get('ServiceOne');
$service2 = $container->get('ServiceOne');
var_dump($service1 === $service2); // true
$container->add(
'ServiceFour',
ServiceFactory::create(
function($c) {
return new MyAwesomeService();
}
)
);
$service1 = $container->get('ServiceFour');
$service2 = $container->get('ServiceFour');
var_dump($service1 === $service2); // false