drunomics/service-utils

提供setter注入特性,以简化服务的依赖注入。

10.1.1 2023-11-07 13:06 UTC

README

(c) 2017-2023 drunomics GmbH

PHPUnit and code style checks

提供setter注入特性,以简化服务的依赖注入。

版本

主版本号与Drupal核心兼容性匹配,例如。

 2.x -> Drupal 8.2.x
 3.x -> Drupal 8.3.x
 4.x -> Drupal 8.4.x
 5.x -> Drupal 8.5.x
 6.x -> Drupal 8.6.x
 7.x -> Drupal 8.7.x
 8.x -> Drupal 8.8.x
 9.x -> Drupal 8.9.x
 9.1.x -> Drupal 9.1.x
 9.2.x -> Drupal 9.2.x
 9.3.x -> Drupal 9.3.x
 9.4.x -> Drupal 9.4.x
 10.x -> Drupal 10.x

发布

在分支更改后,我们需要创建一个新的适当版本。

 8.x -> 8.8.0, 8.8.1, ...
 9.x -> 8.9.0, 8.9.1, ...
 9.1.x -> 9.1.0, 9.1.1, ...
 9.2.x -> 9.2.0, 9.2.1, ...
 9.3.x -> 9.3.0, 9.3.1, ...
 9.4.x -> 9.4.0, 9.4.1, ...
 10.x -> 10.0.0, 10.0.1, ...

范围

这包括核心或 contrib 模块中缺失的服务特性。

使用方法

  • 通过composer require drunomics/service-utils安装此包

  • 只需“使用”你想要使用的服务特性。特性提供合适的getter;例如,getEntityTypeManager()

添加缺失的特性

  • 只需添加新的特性,并在相应的命名空间中添加它。命名空间应与服务的命名空间匹配,但以 \drunomics\ServiceUtils 开头,而不是 \Drupal。
  • 每个特性都需要相应的测试用例。你可以简单地复制现有的测试用例,并根据需要修改。
  • 运行测试以确保一切按需运行,并提交你的PR。
  • 如果你的特性涵盖 contrib 模块,请确保将 contrib 模块添加为开发依赖项,以便在运行测试时其类可用。

运行测试

  • 只需克隆项目,然后从项目目录中运行以下命令
   composer install
   ./vendor/bin/phpunit # or use the shortcut
   composer test

编码风格

要检查项目的自定义代码的编码风格,运行PHP代码嗅探器

composer cs

要自动修复编码风格错误(尽可能),运行PHP代码美化器

composer cbf

常见问题解答

  • 为什么特性没有被添加到上游源(核心或 contrib 模块)中,而不是?

    这将是最优选项,但会导致补丁未提交时的开发体验(DX)更差。此包的目标是将依赖注入的速度几乎与调用 \Drupal::container() 相当,因此每次需要依赖项时都添加补丁会花费太长时间,从而导致DX更差。

    建议的工作流程是快速将缺失的特性添加到此包中,以便它们立即可供所有人使用。定期,应针对上游项目提交特性补丁,以改进它们并在长期内弃用此包。一旦这些补丁在新上游版本中落地,service-utils的使用可以替换,并且可以从项目中安全地删除此包。

  • 为什么这不是drupal.org上的项目?

    因为drupal.org没有为composer包设置项目类型,并且使用GitHub与Travis进行测试很方便。