psg/sr4
灵活分层DI应用标准
0.1
2021-07-31 15:10 UTC
Requires
- php: >=7.2.0
This package is auto-updated.
Last update: 2024-08-29 05:50:03 UTC
README
PHP是一种灵活的语言。为什么我们的应用不能基于一个灵活的标准——使框架负责灵活性,并允许用户在编写的代码中拥有灵活性。
根据此标准
- 工具应该有
process
方法 - 工具(中间件、前端、后端等)应该期望在
__construct
和process
中注入依赖项 - 对于HTTP应用
- 框架应允许注入所有Sr1工厂和
Pgs\Sr1\ResponseInterface
、Pgs\Sr1\ServerRequestInterface
、Pgs\Sr4\ExitResponseInterface
- 工具的输出可以包括但不限于
Pgs\Sr1\ResponseInterface
、Pgs\Sr1\ServerRequestInterface
、Pgs\Sr4\ExitResponseInterface
- 框架应将这些集成到响应和请求中
- 框架应允许注入所有Sr1工厂和
- 框架应实现
- ->get() 获取命名服务
- ->set() 添加命名服务
- ->call() 通过依赖注入调用某物。这可以包括通过仅提供类名来构造一个类。
- ->data() 获取和设置数据
- ->data(key): 获取
- ->data(key, value): 设置
由于接口不允许仅定义方法的存在,标准的实现留给程序员(接口中定义的无参数方法要求实现者将所有参数设置为可选)。
流程
参见SR-2
SR 2 变体
- 接口中未指定参数和返回值。这是为了允许框架接受各种返回值,包括PSR 7和SR-1返回值,然后集成这些返回值
- 核心工具现在有一个接口。它仍然可以作为闭包注入
- 核心工具数组。现在可以拥有多个核心工具。
- 如果您想删除所有核心工具
$App->remove(Coreware::class)