lkrms/pretty-php

有偏见的PHP代码格式化器

v0.4.72 2024-09-18 06:16 UTC

README

pretty-php logo

Latest Stable Version License CI Status Code Coverage Visual Studio Marketplace install count Open VSX Registry download count

pretty-php 是一个快速、确定性的、最少配置的PHP代码格式化器。

通过负责您的代码中的空白,pretty-php 使您更容易关注内容,提供随着时间的推移积累的时间和精力节省。

pretty-php 格式化的代码产生最小的差异,并且无论您正在处理哪个项目,外观都相同,消除了视觉上的不和谐,并提高了代码审查的速度和效率。

您可以将 pretty-php 作为独立的工具使用,从您的 编辑器 运行,与lint工具搭配使用,或将其添加到您的CI工作流程中。在每种情况下,配置都是可选的。

如果您有任何问题或反馈,我很乐意 听取您的意见

pretty-php 尚未稳定,因此更新可能会引入影响您的代码的格式化更改。

特性

  • 支持为 PHP 8.3 及以下版本编写的代码(在运行可以解析它的PHP版本时)
  • 代码格式化以 可读性一致性小差异 为目标
  • 在少数 例外 的情况下,忽略先前的格式化,并且除了空白之外,原始文件中的任何内容都不会更改
  • 直接在文件上格式化整个文件
  • 格式化选项故意有限(《pretty-php》有偏见,因此您不需要)
  • 支持通过简单的JSON文件进行配置,但不是必需的
  • 使用PHP的嵌入式标记器来解析输入并验证输出
  • 格式化代码和原始代码进行比较以检查等价性
  • 输出可选地符合 PSR-12PER(详细信息请见 此处

安装

要求

  • Linux、macOS 或 Windows
  • PHP 8.3、8.2、8.1、8.0 或 7.4,带有启用的标准 tokenizermbstringjson 扩展

PHP存档(PHAR)

pretty-php 以PHP存档的形式分发,您可以下载并运行

wget -O pretty-php.phar https://github.com/lkrms/pretty-php/releases/latest/download/pretty-php.phar
php pretty-php.phar --version

PHAR 可以被设置为可执行

chmod +x pretty-php.phar
./pretty-php.phar --version

通过GitHub分发的官方发布版本是经过签名的,可以按以下方式进行验证

wget -O pretty-php.phar https://github.com/lkrms/pretty-php/releases/latest/download/pretty-php.phar
wget -O pretty-php.phar.asc https://github.com/lkrms/pretty-php/releases/latest/download/pretty-php.phar.asc
gpg --recv-keys 0xE8CC5BC780B581F2
gpg --verify pretty-php.phar.asc pretty-php.phar

也支持使用 PHIVE 进行安装,PHIVE可以自动验证PHAR发布

phive install lkrms/pretty-php
./tools/pretty-php --version

不建议将 lkrms/pretty-php 添加到您的项目作为Composer依赖项

Arch Linux

Arch Linux用户可以从AUR安装 pretty-php。例如,如果您首选的AUR辅助工具是 yay

yay -S pretty-php

macOS

macOS上的Homebrew用户可以使用以下命令安装 pretty-php,如果需要,该命令会自动启用 lkrms/misc

brew install lkrms/misc/pretty-php

使用

安装后,使用 pretty-php 开始的方式很简单,就是给它一些格式化的内容。例如,要格式化 bootstrap.phpsrc 目录中的任何PHP文件

pretty-php bootstrap.php src

要查看不实际替换任何文件会发生什么,请添加 --diff 选项

pretty-php --diff bootstrap.php src

有关详细信息的使用信息,请参阅 使用说明 或运行

pretty-php --help

编辑器集成

实用主义

pretty-php 通常遵循自己的规则("忽略之前的格式,原始文件中除了空白以外的内容不变"),但偶尔会在此处作出例外并记录。

  • 保留换行符
    大多数运算符、分隔符和括号相邻的换行符从输入复制到输出。

    使用 -N/--ignore-newlines 来禁用此行为。

  • 字符串和数字被标准化
    除非替代方案更短或需要反斜杠转义,否则优先使用单引号字符串。

    使用 -S/--no-simplify-strings-n/--no-simplify-numbers 来禁用或修改此行为。

  • 别名/导入语句按字母顺序分组和排序
    使用 -M/--no-sort-imports-m/--sort-imports-by 来禁用或修改此行为。

  • 如有必要,将注释移动到正确的相邻标记位置
    重新定位的DocBlocks作为预防措施转换为标准C样式注释。

    使用 --disable=move-comments 来禁用此行为。

  • 代码旁边的注释不会移动到下一行

  • 注释被修剪并对齐

  • 删除空的DocBlocks

许可

本项目根据 MIT许可 许可。