runner/container
Composer 安装命令:
composer require runner/container
包简介
container for runner framework
README 文档
README
A small IoC Container for PHP
Installation
$ composer require runner/container
Usage
create an instance of the container, and bind services into the container with a name.
basic binding
use Runner\Container\Container; $container = new Container(); $container->bind('stack', SplStack::class); $container->make('stack'); $container->bind(ArrayAccess::class, function () { return new ArrayObject(); });
binding implementation
use an interface name as name and bind a concrete implementation to it
$container->bind(ArrayAccess::class, function () { return new ArrayObject(); }); $container->make(ArrayAccess::class);
binding singleton
$container->bind( 'db', function () { return new PDO(); }, true ); $container->bind();
binding instance
just another way to binding singleton
$pdo = new PDO(); $container->instance('db', $pdo);
alias binding
bind an alias as concrete to a registered service
$container->bind(CacheInterface::class, function () { return new FileCache(); }); $container->bind('cache', CacheInterface::class, true); $container->make('cache');
have fun :)
contextual binding
bind different implementation to classes while doing injecting
$container->bind(CacheInterface::class, function () { return new FileCache(); }); $container->bind('redis_cache', function () { return new RedisCache(); }); $container->bindContext( PageController::class, CacheInterface::class, function (Container $container) { return $container->make('redis_cache'); } ); $controller = $container->make(PageController::class);
References
License
MIT
统计信息
- 总下载量: 94
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-04-12