objective-php/services-factory

Objective PHP 的服务容器

v3.1.0 2019-12-18 12:37 UTC

README

描述

Services Factory 是一个尝试以更简单、更易读的方式处理依赖注入,与其他可用的实现相比。

该组件的主要关注点集中在

  • 减少 DI 机制所需的代码和配置
  • 保留构建组件及其依赖注入时的代码洞察

Services Factory 被分割成几个组件。理解这些组件有助于更好地理解组件的整体逻辑

  • 服务规范
    • 由 ObjectivePHP\ServicesFactory\Specification\ServiceSpecificationInterface 定义
    • 这是如何规范化服务定义,以便 Factory 能够理解它们
    • 组件提供了两种默认规范类型
      • PrefabServiceSpecification
        • 最简单的服务!
        • 存储预先实例化的对象(或任何其他值)
      • ClassServiceSpecification
        • 这允许将类定义为服务的模板
        • 可以获取构造函数参数("params" 属性)
        • 可以使用设置器设置可选依赖("setters" 属性)
        • 默认情况下自动注入
    • 两种类型都需要 "id" 参数
    • 后者还支持 "static" 属性,以指示每次请求服务时是否应返回相同的实例
  • 服务构建器
    • 与服务规范类型相关联,构建器负责根据规范实际构建服务
    • 组件还捆绑了两个构建器,每个类型一个
      • PrefabServiceBuilder
      • ClassServiceBuilder
  • Factory
    • 中心对象,用于注册服务规范和构建器
    • 一旦设置,Factory 就会通过其 get(string $serviceId) 方法向应用程序提供服务

文档

组件文档位于 docs 子文件夹