php-packages / container
PHP 的 IoC 容器:简单、快速、简洁。
1.2.0
2015-02-19 12:24 UTC
Requires (Dev)
- php: >=5.4.0
- henrikbjorn/phpspec-code-coverage: 1.0.*
- phpspec/phpspec: 2.1.*
This package is not auto-updated.
Last update: 2024-09-28 17:59:56 UTC
README
PHP 的 IoC 容器:简单、快速、简洁。
特性
- 通过类型提示进行注入
- 通过属性注解进行注入
- 通过数组进行手动依赖注入
导航
安装
composer require php-packages/container
使用
mixed make(string|mixed $class, array $dependencies = [])
class A { } get_class(container()->make("A")); # => "A" get_class(container()->make(new A)); # => "A" class B { public function __construct(array $foo = [], A $bar) { var_dump($foo); # => [] get_class($bar); # => "A" } } container()->make("B"); class C { public function __construct(array $foo) { var_dump($foo); # => [1, 2, "C"] } } container()->make("C", [[1, 2, raw("C")]]);
object inject(object $instance)
请始终在 make
中调用 inject
方法。
class C { } class A { /** * @shouldBeInjected * @var C */ public $b; } get_class(container()->inject(new A)->b); # => "C"
void bind(string $binding, string|object $value)
container()->bind("foo", "stdClass"); container()->bind("bar", $bar = new stdClass); var_dump(container()->make("foo")); # => an instance of stdClass var_dump(container()->make("bar") === container()->make("bar")); # => true
开发
make run-tests make coverage-report coverage-report-server
附加信息
Container 使用 MIT 许可证发布。