wpfulcrum / container
Fulcrum DI容器模块 - 一个简单的依赖注入容器,扩展Pimple。
3.0.5
2017-12-19 04:40 UTC
Requires
- php: ^5.6|^7
- pimple/pimple: ^3.2
- wpfulcrum/extender: ^3
Requires (Dev)
- brain/monkey: ^2.0
- phpunit/phpunit: ~4.8|~5.7.9
- sensiolabs/security-checker: ^4.0
- squizlabs/php_codesniffer: ^3.0
This package is not auto-updated.
Last update: 2024-09-29 04:43:06 UTC
README
Fulcrum DI容器模块提供了一个精简的依赖注入容器。
依赖注入容器的主要目的是管理对象。通过传递一个封装对象创建过程的闭包,使用容器,你可以
- 在不使用
new语句或指定其依赖项的情况下创建新对象。 - 从容器中获取对象,无需使用单例、静态或全局变量。哇哦!
容器还存储数据集。想象一下,它就像一个大的数组,你可以通过一个唯一的键向其中添加值。功能强大。
说实话,依赖注入容器让你的工作变得非常简单。让它处理
- 对象创建及其所有依赖项。
- 管理对象。
- 在内存中存储数据集。
- 检索所需的对象或数据集。
功能
它通过提供以下功能扩展了Pimple
has()方法用于检查容器中是否存在唯一的键。get()方法用于通过其唯一键从容器中获取某些内容。registerConcrete()方法 - 提供注册闭包的能力。
安装
使用此组件的最佳方式是通过Composer
composer require wpfulcrum/container
基本用法
创建对象
使用registerConcrete()方法,你可以注册一个闭包,然后由该闭包处理对象的创建及其依赖项。
例如,假设你有一个具有多个依赖项的对象。例如,你正在使用Fulcrum将“投资组合”自定义帖子类型添加到项目中。
这可能就是该CPT的配置
$concreteConfig = [
'autoload' => true,
'concrete' => function ($container) {
$configObj = new Config(YOURPLUGIN_PATH . '/config/post-type/portfolio.php');
return new PostType(
$configObj,
$configObj->postTypeName,
new PostTypeSupports($configObj)
);
},
];
让我们停下来注意几个要点
- 包括多个依赖项,例如
Config对象- 帖子类型名称
- PostTypeSupports对象。
- 创建CPT对象所需的所有内容都封装在这个闭包中。
autoload参数设置为true。因此,在将其注册到容器中时立即创建对象。
使用上述配置,可以将其注册到容器中,如下所示
$container = new DIContainer();
$portfolioCpt = $container->registerConcrete($concreteConfig, 'portfolio_cpt');
贡献
所有反馈、错误报告和pull请求都受欢迎。