shopsys/coding-standards

兼容PSR-2的编码规范定义

安装数: 205 145

依赖项: 11

建议者: 0

安全: 0

星标: 20

关注者: 11

分支: 7

v14.0.1 2024-04-23 07:08 UTC

This package is auto-updated.

Last update: 2024-09-25 11:41:45 UTC


README

Downloads

Shopsys编码规范基于PSR-2

该项目包含工具和预定义规则集,用于自动检查我们在许多Shopsys项目中使用的Shopsys编码规范。存储库还包含一些自定义规则

此存储库由shopsys/shopsys monorepo维护,变更信息在monorepo CHANGELOG.md中。

提供的工具

有关这些工具的更多信息,请参阅官方文档。

安装

php composer require shopsys/coding-standards

使用

在您的项目中创建包含预定义规则集的easy-coding-standard.yml配置文件。您还可以自定义规则,甚至可以在配置中添加您自己的sniffs和fixers。

#easy-coding-standard.yml
imports:
    - { resource: '%vendor_dir%/shopsys/coding-standards/easy-coding-standard.yml' }

在终端中,运行以下命令

php vendor/bin/parallel-lint /path/to/project
php vendor/bin/ecs check /path/to/project --config=/path/to/project/custom-coding-standard.yml

自定义规则

PHP-CS-Fixer的规则

Shopsys/missing_button_type

所有<button> HTML标签在.html.html.twig文件中必须有显式的type属性。

如果没有指定type,则将其修复为type="button"",因为隐含值是submit,这会根据上下文(在<form>元素内部的<button>会提交表单)表现出不同的行为。

Shopsys/orm_join_column_require_nullable

Doctrine注解@ORM\ManyToOne@ORM\OneToOne必须在@ORM\JoinColumn中显式定义nullable选项。

如果没有指定nullable选项,则将其修复为nullable=false,因为隐含值是true,但这与@Column注解的nullable隐含值相反。这使得它保持一致。

PHP_CodeSniffer的规则

ForbiddenExitSniff

不允许使用函数exit()

ForbiddenSuperGlobalSniff

不允许使用超全局变量($_COOKIE$_GET$_FILES$_POST$_REQUEST$_SERVER)。

ObjectIsCreatedByFactorySniff

不允许在工厂之外实例化可以由其工厂创建的对象。

ValidVariableNameSniff

默认的\PHP_CodeSniffer\Standards\Squiz\Sniffs\NamingConventions\ValidVariableNameSniff不报告以$_var格式出现的方法参数为违规,而它应该报告。当禁用PrivateNoUnderscore属性时,它还会跳过对私有成员的检查。

此sniff提供了缺失的功能,旨在作为默认的ValidVariableNameSniff的补充使用。

贡献

感谢您为Shopsys编码规范包做出的贡献。我们一起使Shopsys平台变得更好。

此存储库为只读。如果您想报告问题和/或发送拉取请求,请使用主要的Shopsys 存储库

请在贡献之前检查我们的贡献指南

支持

当您遇到麻烦或需要帮助时,该怎么办?最好的办法是加入我们的Slack

如果您想报告问题,请使用主要的Shopsys 存储库