cooldevguys/phpstan-dhexpendency-rules

基于六边形架构分层依赖的PHPStan规则集

安装: 186

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 0

开放问题: 0

类型:phpstan-extension

1.0.3 2023-08-22 14:48 UTC

This package is not auto-updated.

Last update: 2024-10-01 19:42:50 UTC


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