psgsr4

灵活分层DI应用标准

0.1 2021-07-31 15:10 UTC

This package is auto-updated.

Last update: 2024-08-29 05:50:03 UTC


README

PHP是一种灵活的语言。为什么我们的应用不能基于一个灵活的标准——使框架负责灵活性,并允许用户在编写的代码中拥有灵活性。

根据此标准

  • 工具应该有process方法
  • 工具(中间件、前端、后端等)应该期望在__constructprocess中注入依赖项
  • 对于HTTP应用
    • 框架应允许注入所有Sr1工厂和Pgs\Sr1\ResponseInterfacePgs\Sr1\ServerRequestInterfacePgs\Sr4\ExitResponseInterface
    • 工具的输出可以包括但不限于Pgs\Sr1\ResponseInterfacePgs\Sr1\ServerRequestInterfacePgs\Sr4\ExitResponseInterface
      • 框架应将这些集成到响应和请求中
  • 框架应实现
    • ->get() 获取命名服务
    • ->set() 添加命名服务
    • ->call() 通过依赖注入调用某物。这可以包括通过仅提供类名来构造一个类。
    • ->data() 获取和设置数据
      • ->data(key): 获取
      • ->data(key, value): 设置

由于接口不允许仅定义方法的存在,标准的实现留给程序员(接口中定义的无参数方法要求实现者将所有参数设置为可选)。

流程

参见SR-2

SR 2 变体

  • 接口中未指定参数和返回值。这是为了允许框架接受各种返回值,包括PSR 7和SR-1返回值,然后集成这些返回值
  • 核心工具现在有一个接口。它仍然可以作为闭包注入
  • 核心工具数组。现在可以拥有多个核心工具。
    • 如果您想删除所有核心工具
$App->remove(Coreware::class)