herrera-io / service-container
此包已被放弃,不再维护。未建议替代包。
简单的服务容器。
1.1.0
2013-01-31 22:12 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2021-12-07 01:35:38 UTC
README
简单的服务容器。
摘要
此库提供简单的服务容器。它受到Fabien Potencier的Pimple项目(特别是Igor Wielder的修改)的很大影响。与Pimple的不同之处在于
- 命名约定
- 服务提供者注册处理
- 特定于库的异常
shared()
和protect()
的不同实现
安装
将其添加到Composer依赖列表中
$ composer require herrera-io/service-container=1.*
使用
简单使用
<?php use Herrera\Service\Container; $container = new Container(array('var' => 123)); $container['factory'] = $container->many(function () { return new ArrayObject(array('rand' => rand())); }); $container['shared'] = $container->once(function() { return new ArrayObject(array('rand' => rand())); }); echo $container['factory']['rand']; // echo "1197692050" echo $container['factory']['rand']; // echo "995449132" echo $container['shared']['rand']; // echo "89432412" echo $container['shared']['rand']; // echo "89432412"
服务提供者使用
<?php use Herrera\Service\Container; use Herrera\Service\ProviderInterface; class MyProvider implements ProviderInterface { public function register(Container $container) { $container['hello'] = $container->once(function (Container $container) { echo 'Hello, ', $container['name'], "!\n"; }); } } $container = new Container(); $container->register(new MyProvider(), array( 'name' => 'Guest' ));