Pint

未匹配的标注
本文档最新版为 11.x,旧版本可能放弃维护,推荐阅读最新版!

Laravel Pint

介绍

Laravel Pint 是一个为极简主义者设计的 PHP 代码风格修复工具。Pint 构建在 PHP CS Fixer 之上,使确保代码风格保持干净和一致变得简单。

Pint 会随所有新的 Laravel 应用自动安装,因此你可以立即开始使用。默认情况下,Pint 不需要任何配置,它会按照 Laravel 的规范化编码风格修复你的代码中的样式问题。

安装

Pint 已包含在 Laravel 框架的近期版本中,因此通常无需安装。但对于旧的应用程序,你可以通过 Composer 安装 Laravel Pint:

composer require laravel/pint --dev

运行 Pint

你可以通过调用项目 vendor/bin 目录下的 pint 可执行文件来修复代码样式问题:

./vendor/bin/pint

你也可以只对特定文件或目录运行 Pint:

./vendor/bin/pint app/Models

./vendor/bin/pint app/Models/User.php

Pint 会显示它更新的所有文件的详细列表。通过在调用 Pint 时提供 -v 选项,你可以看到 Pint 变更的更多细节:

./vendor/bin/pint -v

如果你希望 Pint 仅检查代码中的风格错误而不实际修改文件,可以使用 --test 选项。如果发现任何代码风格错误,Pint 将返回非零退出码:

./vendor/bin/pint --test

如果你希望 Pint 只修改与提供的 Git 分支不同的文件,可以使用 --diff=[branch] 选项。这在 CI 环境中(例如 GitHub Actions)非常有效,可以节省时间,只检查新增或修改的文件:

./vendor/bin/pint --diff=main

如果你希望 Pint 只修改 Git 中有未提交更改的文件,可以使用 --dirty 选项:

./vendor/bin/pint --dirty

如果你希望 Pint 修复任何有代码风格错误的文件,但如果修复了任何错误仍然返回非零退出码,可以使用 --repair 选项:

./vendor/bin/pint --repair

配置 Pint

如前所述,Pint 不需要任何配置。但是,如果你希望自定义预设、规则或检查的文件夹,可以在项目根目录创建一个 pint.json 文件:

{
    "preset": "laravel"
}

此外,如果你希望使用特定目录下的 pint.json 文件,可以在调用 Pint 时提供 --config 选项:

./vendor/bin/pint --config vendor/my-company/coding-style/pint.json

预设(Presets)

预设定义了一组规则,可用于修复代码中的风格问题。默认情况下,Pint 使用 laravel 预设,它按照 Laravel 的规范化编码风格修复问题。但是,你可以通过向 Pint 提供 --preset 选项来指定不同的预设:

./vendor/bin/pint --preset psr12

如果你希望,也可以在项目的 pint.json 文件中设置预设(preset):

{
    "preset": "psr12"
}

Pint 当前支持的预设有:laravelperpsr12symfonyempty

规则(Rules)

规则是 Pint 用来修复代码风格问题的风格指导。如前所述,预设是预定义的一组规则,对于大多数 PHP 项目来说已经足够,因此通常你无需关心它们包含的具体规则。

但是,如果你愿意,你可以在 pint.json 文件中启用或禁用特定规则,或者使用 empty 预设从零定义规则:

{
    "preset": "laravel",
    "rules": {
        "simplified_null_return": true,
        "array_indentation": false,
        "new_with_parentheses": {
            "anonymous_class": true,
            "named_class": true
        }
    }
}

Pint 构建在 PHP CS Fixer 之上。因此,你可以使用其任何规则来修复项目中的代码风格问题:PHP CS Fixer 配置工具

排除文件 / 文件夹(Excluding Files / Folders)

默认情况下,Pint 会检查项目中所有 .php 文件,但会排除 vendor 目录。如果你希望排除更多文件夹,可以使用 exclude 配置选项:

{
    "exclude": [
        "my-specific/folder"
    ]
}

如果你希望排除所有包含某个名称模式的文件,可以使用 notName 配置选项:

{
    "notName": [
        "*-my-file.php"
    ]
}

如果你希望通过提供文件的 精确路径 来排除某个文件,可以使用 notPath 配置选项:

{
    "notPath": [
        "path/to/excluded-file.php"
    ]
}

持续集成

GitHub Actions

为了自动使用 Laravel Pint 对你的项目进行代码风格检查,你可以配置 GitHub Actions,让 Pint 在每次向 GitHub 推送新代码时自动运行。首先,确保在 GitHub 中为工作流授予“读取和写入权限”,路径为 Settings > Actions > General > Workflow permissions。然后,创建一个 .github/workflows/lint.yml 文件,内容如下:

name: Fix Code Style

on: [push]

jobs:
  lint:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: true
      matrix:
        php: [8.4]

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}
          extensions: json, dom, curl, libxml, mbstring
          coverage: none

      - name: Install Pint
        run: composer global require laravel/pint

      - name: Run Pint
        run: pint

      - name: Commit linted files
        uses: stefanzweifel/git-auto-commit-action@v5

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/laravel/12.x/pi...

译文地址:https://learnku.com/docs/laravel/12.x/pi...

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~