如何使用Laravel Pint自动格式化PHP代码? (代码风格统一)

要让 pint 识别并格式化所有 PHP 文件,需在根目录下创建严格命名的 pint.json 配置文件,明确列出所有目标路径如 [“app”,”config”,”database”,”routes”,”tests”,”src”,”packages”],避免使用不支持的 glob 表达式,并通过 –test 验证配置有效性。

如何使用laravel pint自动格式化php代码? (代码风格统一)

直接运行 pint 就能格式化项目里的 PHP 文件,但默认行为容易漏文件、跳过配置、或和团队规则不一致——关键不在“能不能用”,而在“用对没用对”。

如何让 pint 识别并格式化所有 PHP 文件?

默认只处理 app/config/database/routes/tests/ 目录,但实际项目常有 src/packages/stubs/ 等自定义路径。不显式指定,这些文件就逃过了格式化。

  • 运行 vendor/bin/pint --paths="app,config,database,routes,tests,src,packages" 覆盖全部目标目录
  • 更稳妥的方式是写进 pint.json 配置文件
    {
      "preset": "laravel",
      "paths": ["app", "config", "database", "routes", "tests", "src", "packages"]
    }
  • 避免用 **/*.php 这类 glob 表达式——pint 不支持通配符路径,会静默忽略

为什么修改了 pint.json 却没生效?

pint 默认只读取根目录下的 pint.json,且不会自动继承或合并其他配置。常见失效原因是:

  • 把配置放在子目录(如 tests/pint.json)——完全无效
  • 文件名写成 .pint.jsonpint.config.json——必须是严格的小写 pint.json
  • JSON 格式错误(比如末尾多逗号、用了单引号)——pint 不报错,但回退到默认 preset
  • 改完配置后没加 --test 验证:先跑 vendor/bin/pint --test 看是否报错,再执行真实格式化

如何让 pint 和 PHP-CS-Fixer 共存而不冲突?

很多老项目已用 php-cs-fixer,而 pint 底层就是它封装的。强行共存会导致重复格式化、规则打架,尤其在 CI 中容易失败。

企站帮企业网站管理系统1.0

企站帮企业网站管理系统1.0

一、源码描述这是一款比较简单的企业管理系统源码,界面美观大方,功能简单,特别适合初学者学习研究,系统运行十分流畅,可以作为二次开发,同时也是可以帮助初学者增长知识的优秀代码。二、功能介绍主要功能:企业动态,产品介绍 ,免费下载,定制服务,该源码比较适合新手学习和二次开发使用。三、源码特点1、网站布局:采用目前最先进的布局方式DIV+CSS,符合W3C的标准和Web2.0的风格。2、程序设计模块化,

下载

立即学习PHP免费学习笔记(深入)”;

  • 删掉 .php-cs-fixer.phpphp-cs-fixer.php,只保留 pint.json
  • 如果必须保留 php-cs-fixer(例如某些自定义规则 pint 不支持),那就禁用 pint:在 composer.jsonscripts 里移除 "pint" 条目,改用 "cs-fix": "php-cs-fixer fix"
  • 注意 pintlaravel preset 和 php-cs-fixer 的 @Laravel 规则集基本等价,但版本对齐很重要:pint v1.x 对应 php-cs-fixer v3.10+;混用低版本可能触发 Unknown fixer 错误

最易被忽略的一点:pint 不检查 vendor/node_modules/,这没问题;但它也不会处理 .php 后缀但非 PHP 代码的文件(比如 Blade 模板里的 @php 块)。真要统一风格,Blade 文件得靠 blade-formatter 单独处理——pint 管不了那块。

https://www.php.cn/faq/1996244.html

发表回复

Your email address will not be published. Required fields are marked *