pkj/dic
Composer 安装命令:
composer require pkj/dic
包简介
Dependency Injection Container.
README 文档
README
Simple dependency injection container (DIC) or otherwise known as Inversion of Control (IoC). DIC helps you sort out dependencies for objects in a nice manner.
Example
$di = new DependencyInjector(); class World { private $str; public function __construct($str) { $this->str = $str; } public function __toString () { return $this->str; } } $di->service('world', function ($string) { return new World($string); }, ['World']); $di->service('test', function ($number, $thing) { return "Hello $thing, this is a number: $number!"; }, [1337, '@world']); echo $di->service('test');
Outputs:
Hello World, this is a number: 1337!
Documentation
Services
Use the service method to create new services.
- Argument 1: The name of the service
- Argument 2: A callable that should return the value of the service when we want to fetch your service. Can return anything from a primitive value to a complex object.
- Argument 3: Values to pass into the
Argument 2's arguments. Use a string starting with@to inject a service, otherwise you can inject anything. Note that everything starting with a@is treated as a service.
Configuration
It's possible to configure the DependencyInjector with the config method. You can also define custom global settings using ->config($key, $value).
Listed configuration below:
DependencyInjector::CONF_STATIC_ANALYSIS
For convenience you can set DependencyInjector::CONF_STATIC_ANALYSIS to true, by doing this you don't need to specify arguments in the third argument using the service method.
Example:
// Enable static anlysis using reflection. $di->config(DependencyInjector::CONF_STATIC_ANALYSIS, true); // The following code: $di->service('test', function ($world) { return "Hello $world!"; }, ['@world']); // Can now become: $di->service('test', function ($world) { return "Hello $world!"; });
pkj/dic 适用场景与选型建议
pkj/dic 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 0, 最近一次更新时间为 2014 年 11 月 28 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 pkj/dic 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 pkj/dic 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-11-28