strident/container
最新稳定版本:2.0.0
Composer 安装命令:
composer require strident/container
包简介
Dependency injection container component designed for ease of use and speed. Built for Trident. Heavily inspired by Pimple.
README 文档
README
Dependency injection container component designed for ease of use and speed. Built for Trident. Heavily inspired by Pimple.
##Installation
Installation is available via Composer. Add the package to your composer.json:
$ composer require strident/container ~2.0
##Usage
The container is incredibly simple to instantiate. Simply do the following:
use Strident\Container\Container; $container = new Container();
###Defining Services
From there, you can define services like so:
// 'Service' class defined somewhere, and 'dependency_name' service defined $container->set("service_name", function($container) { return new Service($container->get("dependency_name")); });
The services are lazy loaded (i.e. nothing is instantiated until it is called).
###Extending a Service After Definition
You may also extend services once they have been defined (for example, if you wish to augment a service, alter settings, swap out dependencies etc). But note that once a service is used, it becomes locked and cannot be modified further.
$container->extend("service_name", function($service, $container) { $service->doSomething(); $service->addSomething($container->get("dependency_name")); return $service; });
###Defining Factory Services
If you wish to return a new instance of your service every time instead of the same instance, you may define a factory service like so:
$container->set("service_name", $container->factory(function($container) { return new Service($container->get("dependency_name")); }));
###Parameters
Parameters are get / set by accessing the container like an array:
// Set $container["foo"] = "A parameter can be anything"; // Get $foo = $container["foo"];
统计信息
- 总下载量: 16
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-02-16