官方新项目 Laravel Pint —— 基于 PHP-CS-Fixer 专为 Laravel 优化的编码格式化工具

官方新项目 Laravel Pint —— 基于 PHP-CS-Fixer 专为 Laravel 优化的编码格式化工具

期待已久的炒作终于结束了,Laravel 最新的开源 CLI 应用程序已经发布到世界各地,我们已经着手介绍它——Laravel Pint

“Laravel pint 是一个零依赖的、构建在 PHP-CS-Fixer 之上的 PHP 代码风格修复器,适用于极简主义者。”,以上是 readme 原文。

一读到这里,我就兴奋起来,我的意思是非常兴奋。在现代 PHP 中,我们一直在磨练我们的工艺,使我们的代码更严格和更好地测试,并确保我们拥有一致的代码风格。 这一切都始于 PHP-FIG 成立时,他们开始发布 PSRs,并且随着具有自己特定发布样式规则的框架不断发展壮大。这个包没有什么不同,它将根据预设自动测试和修复你的代码风格。

想要用这个包,请用 composer 安装它:

composer require laravel/pint --dev

安装后,无需配置即可运行。你可以运行以下命令:

./vendor/bin/pint

无需配置、无需设置、无需思考或努力 - 我的项目会立即针对 PSR-12 样式进行评估并自动修复。是不是很神奇?保持代码干净和一致有时需要耗费一些精力或思考如何进行此设置以及需要实现哪些规则。或者使用 PHP CS Fixer,你必须创建一个配置文件,然后创建一个查找器以将规则添加到 PHP 文件的数组中。事情很快变得一团糟,对吧?

如果您在项目的根目录中创建 pint.json 文件,它会简单地加载并读取配置,否则, 会加载并读取默认值。配置全部使用 JSON 的格式,使其更易于使用且更具可读性。

让我们快速浏览一下使用预设设置新的 pint 配置。但是让我们看看用一个全新的 Laravel 项目来做这件事,所以创建一个新项目:

laravel new pint-demo

在终端中打开这个新项目并安装 pint:

composer require laravel/pint --dev

使用我们全新的 Laravel 应用程序,让我们为 Laravel 配置一个预设。创建一个 pint.json 文件并添加:

{
    "preset": "laravel"
}

现在运行 pint:

./vendor/bin/pint

你应该看到类似于以下的输出:

芜湖,起飞 🚀

所以现在让我们将预设更改为 PSR-12 并检查输出:

{
    "preset": "psr12"
}

重新运行 pint,让我们看看输出:

./vendor/bin/pint

你应该看到以下输出:

让我们检查一下,发现它实施了single_trait_insert_per_statementbracesnew_with_braces等规则。如果我们想稍微定制这些怎么办? 很简单,因为我们可以轻易地定义和删除规则,让我们在 pint.json 文件中关闭大括号:

{
    "preset": "psr12",
      "rules": {
        "braces": false
    }
}

这就对了!自定义设置代码样式的方式很简单。不再需要凌乱的 PHP 和数组来配置你的编码风格。所以让我们重新运行 pint,但这次我们想进行一次试运行,看看会发生什么变化:

./vendor/bin/pint —test

Laravel

厉害吧?漂亮干净的输出,进行试运行,看看什么会失败以及为什么!那么如果想要更多的信息会发生什么呢?我已经修复了上面的文件并返回到用户迁移以及撤消了这些更改,以便我们可以对其进行测试。让我们再次试运行,但这次想使用 -v 标识请求详细输出:

我们得到了很好的输出,就像使用 GitHub 时一样,可以做出改变。 所以我们可以看到代码风格问题,如果我们修复了它会发生什么变化 - 所有这些都来自使用一个非常简单的命令。

我对你不了解,但这是我所有即将进行的项目、包以及我从事的任何其他工作的必备软件。

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

原文地址:https://laravel-news.com/laravel-pint

译文地址:https://learnku.com/laravel/t/69321

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

php-cs-fixer 其实也不会很复杂,不过这个统一 Laravel 的更好,安装、执行,就两个命令。得益于之前一直用 php-cs-fixer,用了 pint 执行后,代码改动不大,之前配置的两个规则跟 Laravel 不一样而已。

1年前 评论

试了一下,挺好用

PHPSTORM 配置方式:
pint 手动模式

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!