spryker / architecture-sniffer
Spryker 架构嗅探器
Requires
- php: >=7.4
- laminas/laminas-config: ^2.5.1 || ^3.1.0
- laminas/laminas-filter: ^2.5.1
- phpdocumentor/reflection-docblock: ^5.3.0
- phpmd/phpmd: ^2.10.0
- symfony/finder: ^4.0.0 || ^5.0.0 || ^6.0.0
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.3
- phpstan/phpstan: ^1.0.0
- spryker/code-sniffer: *
- symfony/var-dumper: ^4.0
- dev-master
- 0.5.7
- 0.5.6
- 0.5.5
- 0.5.4
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-feature/frw-8801/master-php-upgrade-and-drop-81
- dev-feature/DPIB-488-comment-analyzer-tool
- dev-feature/te-10562-rule-to-prevent-deprecated-object-usage-of-json-decode
- dev-feature/te-10423/te-10424-adjust-arch-sniffer
- dev-feature/te-9758/master-kernel-architecture-rule-factory-get-no-new
- dev-poc/facade-function-naming-rule
- dev-feature/te-4011/master-remove-deprecated-messages-from-tests
This package is auto-updated.
Last update: 2024-09-19 15:34:49 UTC
README
为 Spryker 核心、生态系统和应用程序提供架构嗅探器。
优先级级别
1
: API 和关键2
: 非关键(最好有)3
: 实验(检查的代码需要进一步修复)
默认情况下,我们使用并推荐最低优先级 2
用于本地和 CI 检查。
注意:较低优先级(较高数字)始终包括较高优先级(较低数字)。
使用方法
确保将嗅探器作为 require-dev
依赖项包括在内
composer require --dev spryker/architecture-sniffer
Spryker 使用
使用 Spryker 时,您可以使用 Spryker CLI 控制台命令
console code:sniff:architecture [-m ModuleName] [optional-sub-path] -v [-p priority]
建议在此处使用详细输出。
手动使用
您还可以通过控制台使用以下命令手动运行架构嗅探器:
vendor/bin/phpmd src/Pyz/ (xml|text|html) vendor/spryker/architecture-sniffer/src/ruleset.xml --minimumpriority=2
注意:在验证过程中,较低优先级始终包括较高优先级。
将嗅探器包含在 PHPStorm 中
在 编辑 -> 检查 -> PHP -> PHP Mess Detector 验证
之下添加一个新的自定义规则集。例如,将其命名为 Architecture Sniffer
。
客户规则集定义在 vendor/spryker/architecture-sniffer/src/ruleset.xml
检查 Mess Detector 设置
在 框架 & 语言 -> PHP -> Mess Detector
之下,您需要定义配置并设置 phpmd(vendor/bin/phpmd)的路径。使用本地并运行 验证
来查看是否正常工作。
编写新的嗅探器
将它们添加到 src 文件夹内部,并在 tests
中添加具有相同文件夹结构的测试。不要忘记更新 ruleset.xml
。
每个嗅探器都需要一个完整的句子描述
protected const RULE = 'Every Foo needs Bar.'; /** * @return string */ public function getDescription(): string { return static::RULE; }
每个嗅探器需要实现 ClassAware
、FunctionAware
、InterfaceAware
或 MethodAware
接口才能被识别。为了验证嗅探器是否识别您的规则,请检查您的规则是否列在 Zed UI > 维护 > 架构嗅探器中。
另外注意
- 规则名称必须在规则集中是唯一的。
- 每个规则应只包含一个 "检查"。
- 每个规则始终输出原因(违规),而不仅仅是发生。
设置
运行
./setup.sh
和
php composer.phar install
测试
不要忘记测试您的更改
php phpunit.phar
在此项目上运行代码嗅探器
确保此存储库符合 Spryker 编码标准
php composer.phar cs-check
如果您想修复可修复的错误,请使用
php composer.phar cs-fix
一旦一切正常,您就可以提交带有您更改的 PR。