devanoxltd / laravel-revive
为Laravel应用程序自动配置Devanox的标准linting和代码规范。
Requires
- php: ^8.2
- larastan/larastan: ^2.9
- mrchetan/php_standard: ^4.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.64
- laravel-zero/framework: ^11.0
- laravel/pint: ^1.18
- nunomaduro/termwind: ^2.1
- spatie/invade: ^1.1
- tightenco/tlint: ^9.3
README
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
部分,分别放入lint
和fix
。
键是命令的名称(与--using
标志一起使用),值是传递给Symfony\Component\Process\Process
的参数数组。
{ "scripts": { "lint": { "phpstan": ["./vendor/bin/phpstan", "analyse"] } }, "processTimeout": 120 }
当运行lint
或fix
时,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发送电子邮件,而不是使用问题跟踪器。
致谢
- 马特·斯塔uffer
- 安东尼·克拉克
- 汤姆·威茨科斯基 - 此项目的许多原始想法和语法受到了他的
elbgoods/ci-test-tools
软件包的启发 - 所有贡献者
- Tighten 此软件包是Tighten的
duster
的分支
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。