cooldevguys / phpstan-dhexpendency-rules
基于六边形架构分层依赖的PHPStan规则集
1.0.3
2023-08-22 14:48 UTC
Requires
- php: >=7.4.0
- phpstan/phpstan: ^1.8
Requires (Dev)
- phpunit/phpunit: ^9.6
- roave/security-advisories: dev-latest
README
为phpstan提供的一组额外规则。本规则集的目的是促进在六边形架构中尊重依赖流。
这些规则假设典型的六边形架构中有3层:基础设施、应用和领域。
在这些层之间存在流动,这定义了根据它们所在的层,依赖应该如何相互交互,流动如下:基础设施 ➡️ 应用 ➡️ 领域。
此流动的解释是
- 基础设施层可以“知道”或与应用和领域层通信
- 应用层只能“知道”或仅与领域层通信
- 领域层只能与自身通信
此规则集旨在帮助验证依赖流是否正确应用于您的项目。
安装
运行
composer require --dev cooldevguys/phpstan-dhexpendency-rules
如果您使用PHPStan扩展安装程序,则已设置完毕。如果没有,您需要手动在您的phpstan.neon
文件中注册所有规则
includes: - vendor/cooldevguys/phpstan-dhexpendency-rules/rules.neon
配置
您需要将您自己的值作为参数添加到您的phpstan.neon中
parameters: myVendorName: CoolDevGuys vendorStrictMode: true ignoredExternalVendors: ['IgnoredVendor'] infrastructureLayerName: Infra applicationLayerName: App domainLayerName: Dom
myVendorName
(字符串):您的项目供应商vendorStrictMode
(布尔值):表示您是否想验证从应用或领域层没有导入外部供应商ignoredExternalVendors
(字符串[]):您想要排除检查的外部供应商列表infrastructureLayerName
(字符串):您在项目中为基础设施层定义的名称applicationLayerName
(字符串):您在项目中为应用层定义的名称domainLayerName
(字符串):您在项目中为领域层定义的名称
规则
目前有两个规则
LayersDependencyFlowRule
NoExternalVendorsAllowedFromDomainRule