ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

phpfmt

driade ST3

Sublime Text 4 的 PHP 格式化工具,支持 PHP 8。

详细信息

安装

  • 总计 171K
  • Win 109K
  • Mac 35K
  • Linux 27K
2023年8月6日 2023年8月5日 2023年8月4日 2023年8月3日 2023年8月2日 2023年8月1日 2023年7月31日 2023年7月30日 2023年7月29日 2023年7月28日 2023年7月27日 2023年7月26日 2023年7月25日 2023年7月24日 2023年7月23日 2023年7月22日 2023年7月21日 2023年7月20日 2023年7月19日 2023年7月18日 2023年7月17日 2023年7月16日 2023年7月15日 2023年7月14日 2023年7月13日 2023年7月12日 2023年7月11日 2023年7月10日 2023年7月9日 2023年7月8日 2023年7月7日 2023年7月6日 2023年7月5日 2023年7月4日 2023年7月3日 2023年7月2日 2023年7月1日 2023年6月30日 2023年6月29日 2023年6月28日 2023年6月27日 2023年6月26日 2023年6月25日 2023年6月24日 2023年6月23日 2023年6月22日
Windows 15 9 8 10 9 11 6 10 5 5 8 22 12 15 14 7 10 9 19 8 7 17 12 4 4 14 18 9 9 16 7 5 6 13 12 20 14 5 8 11 9 17 9 9 7 7
Mac 3 4 0 3 2 3 2 1 1 1 4 3 4 3 3 5 0 2 5 2 5 3 2 1 2 3 1 1 0 4 1 0 2 2 2 2 3 3 4 2 3 1 2 1 2 1
Linux 3 2 1 1 4 6 1 2 1 3 1 5 4 3 5 4 4 4 3 3 2 2 5 1 4 3 2 2 4 2 2 3 1 3 1 1 1 2 1 4 3 3 0 2 4 0

README

源代码
raw.githubusercontent.com

phpfmt 支持适用于 Sublime Text 4 和 PHP 8.x

PHPFmt

该项目是 https://github.com/nanch/phpfmt_stable 的克隆版本,增加了 PHP 8 的支持以及多个错误修正,因为原始项目已被废弃。

贡献

如果您发现任何问题,请毫不犹豫地提出 pull request 或 issue。提供尽可能多的信息,包括期望结果的代码示例,以方便查找错误。

安装

要求

  • 您必须在本机上运行 PHP,以便运行 Sublime Text

插件在本机上安装了 PHP 5.6 或更高版本时运行

通过软件包管理器安装此插件

  • 在 Sublime Text 中按 ctrl+shift+P
  • 选择 Package Control: Install Package
  • 选择 phpfmt

配置(Windows)

  • 编辑配置文件(%AppData%\Sublime Text\Packages\phpfmt\phpfmt.sublime-nings
  • 对于字段 "php_bin",输入 php.exe 的路径。例如:"php_bin":"c:/PHP/php.exe"

配置(OS X 和 Linux)

  • 编辑配置文件(phpfmt.sublime-settings
  • 对于字段 "php_bin",输入 php 的路径。例如:"php_bin":"/usr/local/bin/php"

设置

建议使用命令对话框中的切换选项。但是,如果需要设置 PHP 的运行位置,可以使用以下选项进行配置文件。

{
    "php_bin":"/usr/local/bin/php",
}

您可以在 https://github.com/driade/phpfmt8/blob/master/driade.sublime-settings 找到示例配置文件。

以下功能可通过命令对话框(ctrl+shift+Pcmd+shift+P)使用

  • phpfmt: 现在格式化
  • phpfmt: 使用空格缩进
  • phpfmt: 切换额外转换
  • phpfmt: 切换排除转换
  • phpfmt: 切换当 .php.tools.ini 缺失时跳过执行
  • phpfmt: 打开或关闭自动完成
  • phpfmt: 打开或关闭自动导入依赖
  • phpfmt: 打开或关闭保存时格式化
  • phpfmt: 打开或关闭 PSR1 - 类和方法名称
  • phpfmt: 打开或关闭 PSR1
  • phpfmt: 打开或关闭 PSR2
  • phpfmt: 打开或关闭 WP 编码规范
  • phpfmt: 分析此
  • phpfmt: 构建自动完成数据库
  • phpfmt: getter 和 setter (驼峰式命名法)
  • phpfmt: getter 和 setter (Go)
  • phpfmt: getter 和 setter (蛇形命名法)
  • phpfmt: 生成 PHPDoc 模块
  • phpfmt: 查找 .php.tools.ini
  • phpfmt: 重新组织类的內容
  • phpfmt: 启用/禁用额外转换
  • phpfmt: 故障排除信息
  • phpfmt: 更新 PHP 可执行文件路径

目前支持的转换

  • 添加括号 - 在新的实例化中添加额外的括号
  • 别名到主函数 - 将函数别名替换为其主函数 - 仅基本语法别名
  • 对齐常量可见性的“=”垂直对齐可见性和常量块中的“=”
  • 对齐双箭头垂直对齐 T_DOUBLE_ARROW (=>)
  • 对齐双斜线注释垂直对齐“//”注释
  • 对齐“=”垂直对齐“=”
  • 按行分组对齐双箭头按行组垂直对齐 T_DOUBLE_ARROW (=>)
  • 对齐 PHP 代码对齐 HTML 块内的 PHP 代码
  • 对齐类型提示垂直对齐函数类型提示
  • 所有曼氏花括号将所有花括号转换为 Allman 标准样式
  • 自动预增量自动将后增量转换为预增量
  • 自动添加分号在语句结束时添加分号
  • 蛋糕PHP样式应用 CakePHP 编码规范
  • 类到self在类、trait 或接口中使用“self”更合适
  • 类到static在类、trait 或接口中使用“static”更合适
  • 转换带有 echo 的开标签从“
  • 将注释替换为文档块当文档块的用途为非结构元素时,替换文档块为常规注释
  • 从双引号转换为单引号从双引号到单引号
  • 从 echo 到 print 从 T_ECHO 转换为 print
  • 封装命名空间用花括号封装命名空间
  • 自动生成 PHPDoc方块自动生成 PHPDoc 模块
  • 缩进三元条件应用缩进到三元条件
  • 从 implode() 别名替换 implode() (join() => implode())

  • 左对齐单词包装在 80 个字以内进行换行 - 左对齐
  • 长数组将短数组转换为长数组
  • 合并 else-if合并 if 和 else
  • 拆分 else-if合并 if 和 else
  • 合并命名空间与开标签确保在命名空间之前没有过多的换行
  • 温和的自动预增量自动将后增量转换为预增量(已弃用。请改用 AutoPreincrement)
  • 在新行之前返回在 T_RETURN 前添加空行
  • 组织类组织类、接口和 trait 结构
  • 排序并删除使用情况删除未使用的导入并排序 use 块
  • 仅排序 use 块排序 use 块 - 不删除未使用的导入
  • 排序方法组织类、接口和 trait 结构
  • 排序方法和可见性组织类、接口和 trait 结构
  • 将 PHPDoc 类型转换为函数类型提示从 PHPDoc 模块中读取变量类型并将它们添加到函数签名中
  • 格式化 Doc Blocks格式化 Doc 模块
  • PSR2EmptyFunction将空函数的 body 与函数头合并到同一行
  • PSR2MultilineFunctionParams将函数参数拆分为多行
  • 重新缩进和定位对象操作对齐对象运算符
  • 重新缩进 switch 块将 switch 块的内容缩进一级更深
  • 重新缩进枚举块将枚举块的内容缩进一级更深
  • 删除 include 声明中的括号从 include 声明中删除括号
  • 删除花括号后面的分号从闭合花括号之后删除分号
  • 删除 T_USE 导入中的前导斜线删除 T_USE 导入中的前导斜线
  • 替换布尔和或从“and”/“or”替换为“&&”/“||”。危险!此操作可能导致行为变化
  • 替换 is_null 替换 is_null($a) 为 null === $a。
  • 恢复注释撤消对注释内容的任何格式化操作
  • 返回 null 简化空返回
  • 短数组将旧数组转换为新数组 (array() => [])
  • 智能行后始终打开在添加隐式花括号块时添加行断
  • 排序使用名称空间按长度和字母顺序组织 use 子句
  • 在控制结构周围添加空间在控制结构周围添加空间
  • 在感叹号后添加空间在感叹号后添加空格
  • 括号内加空格 SpaceAroundParentheses
  • 感叹号周围加空格 SpaceAroundExclamationMark
  • 方法之间加空格 SpaceBetweenMethods
  • 严格行为 在 array_search, base64_decode, in_array, array_keys, mb_detect_encoding 中激活严格选项。危险!这个操作会导致行为变化。StrictBehavior
  • 严格比较 所有比较都转换为严格。危险!这个操作会导致行为变化。StrictComparison
  • 删除数组中的额外逗号 StripExtraCommaInArray
  • 删除类打开大括号之后的空行 StripNewlineAfterClassOpen
  • 删除打开大括号之后的空行 StripNewlineAfterCurlyOpen
  • 删除类体内部的大括号之后的空行 StripNewlineWithinClassBody
  • 删除所有空格 StripSpaces
  • 删除控制结构内部的空行 StripSpaceWithinControlStructures
  • 紧缩连接 Ensure string concatenation does not have spaces, except when close to numbers. TightConcat
  • 删除分号前面的空格 TrimSpaceBeforeSemicolon
  • 升级到 preg 将 ereg* 调用升级为 preg* UpgradeToPreg
  • 换行 WordWrap
  • 更新旧构造函数名称为新的名称WrongConstructorName https://www.php.ac.cn/manual/en/language.oop5.decon.php
  • 执行 Yoda 比 较 YodaComparisons

它是什么意思?What does it do?

之前 Before 之后 After
<?php
for($i = 0; $i < 10; $i++)
{
if($i%2==0)
echo "Flipflop";
}
<?php
for ($i = 0; $i < 10; $i++) {
  if ($i%2 == 0) {
    echo "Flipflop";
  }
}
<?php
$a = 10;
$otherVar = 20;
$third = 30;
<?php
$a        = 10;
$otherVar = 20;
$third    = 30;
可以通过选项“enable_auto_align”启用This can be enabled with the option “enable_auto_align”
<?php
namespace NS\Something;
use \OtherNS\C;
use \OtherNS\B;
use \OtherNS\A;
use \OtherNS\D;

$a = new A();
$b = new C();
$d = new D();
<?php
namespace NS\Something;

use \OtherNS\A;
use \OtherNS\C;
use \OtherNS\D;

$a = new A();
$b = new C();
$d = new D();
注意如何排序使用语句,并删除未使用的一些语句note how it sorts the use clauses, and removes unused ones

它是什么意思? - PSR 版本What does it do? - PSR version

之前 Before 之后 After
<?php
for($i = 0; $i < 10; $i++)
{
if($i%2==0)
echo "Flipflop";
}
<?php
for ($i = 0; $i < 10; $i++) {
    if ($i%2 == 0) {
        echo "Flipflop";
    }
}
注意缩进为4个空格Note the identation of 4 spaces.
<?php
class A {
function a(){
return 10;
}
}
<?php
class A
{
    public function a()
    {
        return 10;
    }
}
注意大括号的位置,以及在方法a()中的可见性调整Note the braces position, and the visibility adjustment in the method a().
<?php
namespace NS\Something;
use \OtherNS\C;
use \OtherNS\B;
use \OtherNS\A;
use \OtherNS\D;

$a = new A();
$b = new C();
$d = new D();
<?php
namespace NS\Something;

use \OtherNS\A;
use \OtherNS\C;
use \OtherNS\D;

$a = new A();
$b = new C();
$d = new D();
注意如何排序使用语句,并删除未使用的一些语句note how it sorts the use clauses, and removes unused ones

故障排除 Troubleshooting

  • 确保您可以从命令行运行PHPBe sure you can run PHP from the command line.
  • 如果您需要支持,请在 fmt 问题 中打开一个问题If you need support, please open an issue at fmt issues

致谢 Acknowledgements