drunomics / service-utils
提供setter注入特性,以简化服务的依赖注入。
10.1.1
2023-11-07 13:06 UTC
Requires (Dev)
- drupal/coder: ^8.3
- drupal/core: ^10
- drupal/pathauto: ^1.11
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.5.0
This package is auto-updated.
Last update: 2024-09-07 15:07:43 UTC
README
(c) 2017-2023 drunomics GmbH
提供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进行测试很方便。