tcopestake/php-parser-psr-2-pretty-printer

此包的最新版本(dev-master)没有可用的许可证信息。

PHP-Parser 的 PSR-2 格式化打印器。

dev-master 2020-01-29 11:41 UTC

This package is not auto-updated.

Last update: 2024-09-24 05:25:58 UTC


README

不出所料,这是为 PHP-Parser 的 PSR-2 格式化打印器。

安装

Composer

将此包添加到您的 composer.json 的需求中,例如:

"require": {
    "tcopestake/php-parser-psr-2-pretty-printer": "dev-release"
}

用法

要使用此格式化打印器,实例化 PHPParserPSR2_Printer 而不是(例如)PHPParser_PrettyPrinter_Default,并像平常一样使用它。例如

$printer = new PHPParserPSR2_Printer;

...

echo $printer->prettyPrint($stmts);

特性

与默认格式化打印器不同的有意更改包括:

  • 如果实现了多个接口,则每个定义将放在新的一行上。
  • 闭包定义中 "use" 和参数之间的空格。
  • 如果方法定义了两个以上的参数,则每个定义将放在新的一行上。
  • 如果方法传递了两个以上的参数,则每个参数将放在新的一行上。
  • 可选 方法重命名。(见下文)

方法重命名

默认情况下,方法名称被视为易变的,因此不会重命名。但是,如果您愿意,可以调用 setMethodsVolatile(false) 以使打印器将蛇形方法名称转换为驼峰式。例如

protected function do_something() {
    return 1 + 1;
}

function get_class_to_do_something() {
    return $this->do_something();
}

变为

protected function doSomething()
{
    return 1 + 1;
}

public function getClassToDoSomething()
{
    return $this->doSomething();
}

示例

输入

class ABC extends \A implements \B, \C {
    public function a_method_name($awefwefwef, $ywefwefwefwefwef, $wwefwefwefwefwe) {
        $x = function() use($awefwefwef, $wwefwefwefwefwe)
        {
            if(1==1)
                return $ywefwefwefwefwef;
        };

   // do something

        echo $x;
    }

    function bxy(array $g)
    {
                // do something

        return $this->a_method_name($g, $f, $x);
    }

    function z(array $g)
    {
        foreach($y as $n)
        {

        }
    }
}

输出

class ABC extends \A implements
    \B,
    \C
{
    public function aMethodName(
        $awefwefwef,
        $ywefwefwefwefwef,
        $wwefwefwefwefwe
    ) {
        $x = function () use ($awefwefwef, $wwefwefwefwefwe) {
            if (1 == 1) {
                return $ywefwefwefwefwef;
            }
        };
        // do something
        echo $x;
    }

    public function bxy(array $g)
    {
        // do something
        return $this->aMethodName(
            $g,
            $f,
            $x
        );
    }

    public function z(array $g)
    {
        foreach ($y as $n) {

        }
    }

}

许可证

MIT