devanoxltd/laravel-revive

为Laravel应用程序自动配置Devanox的标准linting和代码规范。

安装: 18

依赖项: 0

建议者: 0

安全性: 0

星标: 10

关注者: 1

分支: 1

类型:

v3.0.2 2024-09-28 13:29 UTC

This package is auto-updated.

Last update: 2024-09-28 13:31:44 UTC


README

Project Banner

Laravel Revive

自动应用于Laravel应用程序的Devanox默认代码风格。

Revive基于以下工具构建

  • TLint:对其他工具未涵盖的问题进行Laravel和PHP代码linting
    • 使用默认的Devanox预设
  • PHP_CodeSniffer:检测无法自动修复的问题
    • 使用Devanox预设,主要是PSR1和一些Devanox特定的规则
  • PHP CS Fixer:添加Laravel Pint不支持的自定义规则
    • CustomOrderedClassElementsFixer Devanox特定的类元素顺序
  • Pint:Laravel的代码风格规则(一些Devanox特定的自定义设置)
    • 使用默认的Laravel预设和一些Devanox特定的规则

您可以在风格指南中查看编译的规则列表及其示例。

安装

您可以通过composer安装此包

composer require devanoxltd/laravel-revive --dev

可选地,您可以发布GitHub Actions配置

./vendor/bin/revive github-actions

或者您可以发布Husky Hooks

./vendor/bin/revive husky-hooks

使用方法

一次性lint所有内容

./vendor/bin/revive lint

一次性修复所有内容

./vendor/bin/revive fix

要恢复Git中未提交更改的文件,请使用--dirty选项

./vendor/bin/revive lint --dirty
#or
./vendor/bin/revive fix --dirty

查看所有可用命令

./vendor/bin/revive
#or
./vendor/bin/revive commands

Sail使用方法

./vendor/bin/sail php ./vendor/bin/revive

或者,Sail有一个脚本,它简化了包二进制的执行,所以您可以这样做

./vendor/bin/sail bin revive

自定义

如果您需要为每个工具包含或排除文件或目录,您可以在项目根目录中创建一个revive.json配置文件

{
    "include": [
        "bin",
        "scripts",
        "src",
        "tests"
    ],
    "exclude": [
        "tests/fixtures"
        "**/folderToExclude/**"
    ]
}

要作为Revive的一部分运行额外的脚本,首先将它们添加到revive.json中的scripts部分,分别放入lintfix

键是命令的名称(与--using标志一起使用),值是传递给Symfony\Component\Process\Process的参数数组。

{
    "scripts": {
        "lint": {
            "phpstan": ["./vendor/bin/phpstan", "analyse"]
        }
    },
    "processTimeout": 120
}

当运行lintfix时,Revive将自动获取这些脚本。默认情况下,附加脚本在60秒后超时。您可以使用processTimeout键覆盖此设置。

要自定义Revive运行的工具或它们执行的顺序,请使用--using标志并提供一个以逗号分隔的命令列表

./vendor/bin/revive lint --using="phpstan,tlint,pint"

TLint

在项目根目录中创建一个tlint.json文件。更多信息请参阅TLint文档

PHP_CodeSniffer

在项目根目录中创建一个.phpcs.xml.dist文件,内容如下

<?xml version="1.0"?>
<ruleset>
    <file>app</file>
    <file>config</file>
    <file>database</file>
    <file>public</file>
    <file>resources</file>
    <file>routes</file>
    <file>tests</file>

    <rule ref="Devanox"/>
</ruleset>

现在您可以在<rule ref="Devanox"/>行下添加自定义设置,甚至禁用Devanox规则以使用自己的规则集。更多信息请参阅这篇入门文章

PHP CS Fixer

在项目根目录中创建一个.php-cs-fixer.dist.php文件,内容来自Revive的.php-cs-fixer.dist.php文件。更多信息请参阅PHP CS Fixer文档

Pint

在项目根目录中创建一个 pint.json 文件,您可以使用Revive的pint.json文件作为起点。更多信息请参考Pint文档

GitHub Action

有一个GitHub Action可以用来清理您的流程。

警告 注意!提交到您仓库的流程将停止任何当前正在运行的流程,并且不会触发另一个流程运行。

一种解决方案是在Revive完成后通过更新这些流程的触发器来运行您的其他流程

on:
  # Commits made in Revive Fix will not trigger any workflows
  # This workflow is configured to run after Revive finishes
  workflow_run:
    workflows: ["Revive Fix"]
    types:
      - completed

贡献

请参阅CONTRIBUTING以获取详细信息。

安全性

如果您发现任何与安全相关的问题,请通过info@devanox.com发送电子邮件,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件