naylonkessler / con-boss
轻量级的DI和IoC上下文管理器
v0.0.0
2017-02-17 09:16 UTC
Requires
- php: >=5.6.0
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-20 20:31:28 UTC
README
ConBoss是一个用于依赖注入和反转控制概念的轻量级上下文管理器(容器)。它旨在简单轻量,但仍然强大。
安装
只需使用composer要求该包。
composer require naylonkessler/con-boss
使用该包
导入并创建一个容器
<?php use ConBoss\Container; $container = new Container();
在绑定一些依赖项之后
// Bind a name to a class FQN $container->bind('name', Some\Class::class); // Bind an interface FQN to a class FQN $container->bind(Some\Interface::class, Some\Class::class); // Bind an interface FQN to a factory closure $container->bind(Some\Interface::class, function ($container) { return new \Some\Class(); }); // Bind a variable $container->bind('$varName', 'Any content'); // Bind an interface FQN to a shared class FQN $container->share(Shared\Interface::class, Some\Shared\Class::class);
最后从容器请求一些绑定
// Get some bind name from container $some = $container->get('name'); // Get some variable from container $var = $container->get('$varName'); // Get multiple values from container list($name, $var) = $container->get(['name', '$varName']);
您也可以从容器中解绑某些内容并检查是否存在绑定
// Unbind a name from container $container->unbind('name'); // Check if some bind exists $exists = $container->has('name');
除了返回特定值的Container::get()
和Container::has()
方法外,如果您喜欢,您还可以利用链式调用
// Chained calls $container->share('some-shared', Some\Shared::class) ->bind('some-bind', Some\Bind::class) ->bind('$someVar', 10);