worksome/coding-style

Worksomes编码风格

安装次数: 528,919

依赖项: 29

建议者: 0

安全: 0

星标: 46

关注者: 18

分支: 3

开放问题: 0

类型:composer-plugin

v2.11.0 2024-06-25 08:29 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License

此存储库包含Worksomes遵循的编码风格。

它包括对ECSPHPStanRector的配置。

设置

安装此Composer包

composer require --dev worksome/coding-style

运行生成命令以生成配置文件

composer generate-coding-style-stubs

将以下部分添加到您的composer.json文件中

"scripts": {
    "ecs": "vendor/bin/ecs",
    "ecs:fix": "vendor/bin/ecs --fix",
    "phpstan": "vendor/bin/phpstan analyse",
    "rector": "vendor/bin/rector process --dry-run --ansi",
    "rector:fix": "vendor/bin/rector process --ansi"
},

使用方法

要使用它,只需运行添加到composer中的脚本之一。

$ composer ecs
$ composer ecs:fix
$ composer phpstan
$ composer rector
$ composer rector:fix

ECS规则

Worksomes编码风格扩展了PSR-12基本规则集

排除/跳过的规则

附加/自定义规则

注意:自定义规则有一个⚙️图标。

PhpCsFixer

PHP CodeSniffer

Slevomat Coding Standard

Symplify Coding Standard

Worksome

自定义PHPStan规则

Worksomes编码风格包括以下自定义PHPStan规则。

泛型

适用于所有项目的规则。

DeclareStrictTypes

标识符: worksome.declareStrictTypes

此规则用于确保所有PHP文件包含declare(strict_types=1)语句。

DisallowPHPUnit

标识符: worksome.disallowPhpunit

此规则防止使用PHPUnit测试,而改为使用Pest PHP。它将允许抽象TestCase类。

基于命名空间的后缀

标识符: worksome.namespaceBasedSuffix

为以下命名空间设置后缀配置

  • App\Events: Event
  • App\Listener: Listener
  • App\Policies: Policy
  • App\Jobs: Job

这确保了事件、监听器、策略和作业具有相同的后缀。

Laravel

仅在Laravel环境中应用的规则。

DisallowEnvironmentCheckRule

标识符: worksome.laravel.disallowEnvironmentCheck

此规则将阻止检查应用程序环境,而更倾向于使用基于驱动的方法。

DisallowPartialRouteFacadeResource

标识符: worksome.laravel.disallowPartialRouteResource

此规则禁止在组合使用onlyexcept时使用Route::resource方法。相反,应将部分路由资源拆分为多个路由。

DisallowPartialRouteVariableResourceRule

标识符: worksome.laravel.disallowPartialRouteResource

类似于DisallowPartialRouteVariableResourceRule,但在路由组中使用时,会阻止部分资源的使用。

EnforceKebabCaseArtisanCommandsRule

标识符: worksome.laravel.kebabCaseArtisanCommands

此规则将强制执行使用短横线命名法(kebab-case)的Artisan命令。

自定义PHP_CodeSniffer嗅探器

Worksome代码风格包含各种自定义PHP_CodeSniffer嗅探器,其中PHP CS Fixer的自动修复器不可用。

泛型

Pascal-casing枚举情况

这确保所有枚举情况都使用Pascal-casing(例如Case::PascalCase)。

Laravel

所有特定于Laravel的自定义嗅探器。

配置文件名短横线命名法

检查所有配置文件是否都使用短横线命名法。

禁止使用compact

确保在代码中不使用compact()

禁止使用env

确保除了配置文件外,不要在您的代码中使用env辅助函数。

禁止使用HasFactory

确保在模型上不使用HasFactory特质,这确保直接调用工厂类。

事件监听器后缀

强制事件监听器以特定后缀结束,默认后缀为Listener

禁止在resources目录外使用blade

确保在Laravel的resources目录外不存在任何.blade.php文件。

异常后缀

这确保所有Exception类都应该有Exception后缀。

PhpDoc

所有非特定于Laravel的自定义嗅探器。

属性美元符号

确保在phpdoc中定义的属性始终有一个美元符号。

/**
* @property string $name
 */
class User {}

无类型或注释的参数标签

删除所有未指定类型或注释的@param标签。

/**
 * @param string $name
 * @param $type some random type
 * @param $other // <-- will be removed
 */
public function someMethod($name, $type, $other): void
{}

这主要是因为PHPStan在将其视为有效属性之前需要此操作。

禁止使用TODO注释

这确保所有待办注释都已被阻止使用。应使用Jira代替。

泛型中的空格

这确保在PHPDoc注释中的泛型类型中逗号后面只有一个空格。

自定义Rector规则

Worksome代码风格包括用于自动重构代码的自定义Rector规则。

泛型

禁止的属性

这确保在禁止时自动删除指定的PHP属性

致谢