calgamo / registry
此包已被废弃,不再维护。未建议替代包。
依赖注入容器包装接口库
此包尚未发布版本,且信息有限。
README
描述
Calgamo/Registry 是一个依赖注入(DI)容器外观库
特性
示例
示例 1:简单使用 registry
use Calgamo\Di\Container; use Calgamo\Registry\Adapter\CalgamoDiAdapter; use Calgamo\Registry\Registry; use Calgamo\Registry\Sample\Human; try{ $registry = new Registry('', new CalgamoDiAdapter(new Container)); $david = new Human('David'); $registry->set(Human::class, $david); $david = $registry->get(Human::class); echo 'My name: ' . $david->name . PHP_EOL; } catch(\Throwable $e) { die($e->getTraceAsString()); }
输出
My name: David
示例 2:简单使用 regisrtry registry
use Calgamo\Registry\RegistryRegistry; try{ $registry_registry = new RegistryRegistry('registry.registry', new CalgamoDiAdapter(new Container)); $registry = new Registry('human.namespace', new CalgamoDiAdapter(new Container)); $david = new Human('David'); $registry->set(Human::class, $david); $registry_registry->setRegistry('human.registry', $registry); call_user_func( function(RegistryRegistry $registry_registry) { // You can get registry via registry registry. $r = $registry_registry->getRegistry('human.registry'); // You can get object via registry. $david = $r->get(Human::class); echo 'My name: ' . $david->name . PHP_EOL; } , $registry_registry); } catch(\Throwable $e) { die($e->getTraceAsString()); }
输出
Human registry is registered: 1 My name: David
示例 3:懒加载实例化
try{ $registry = new Registry('human.registry', new CalgamoDiAdapter(new Container)); $registry->set(Human::class, function(){ return new Human('David'); }); $david = $registry->get(Human::class); echo 'My name: ' . $david->name . PHP_EOL; } catch(\Throwable $e) { die($e->getTraceAsString()); }
输出
My name: David
使用方法
要求
PHP 7.0 或更高版本
安装 Calgamo/Registry
推荐通过 Composer 安装 Calgamo/Registry。
composer require calgamo/registry
安装后,您需要引入 Composer 的自动加载器
require 'vendor/autoload.php';
许可
作者
免责声明
此软件不提供任何保证。
我们不承担因使用此软件而产生的任何后果。
请自行承担责任。