prettier / plugin-php

Prettier PHP Plugin
https://loilo.github.io/prettier-php-playground/
MIT License
1.75k stars 130 forks source link

A function or method containing no statements or comments body SHOULD be abbreviated as `{}` #2400

Open jdeniau opened 2 months ago

jdeniau commented 2 months ago

@prettier/plugin-php v0.22.2 Playground link

Input:

<?php

class Foo {
  public function __construct() {}
}

class Bar {
  public function __construct(
    private readonly Foo $foo
  ) {}
}

Output:

<?php

class Foo
{
    public function __construct()
    {
    }
}

class Bar
{
    public function __construct(private readonly Foo $foo)
    {
    }
}

expected behaviour

There should not a blank line between { and } According to PER CS 4.4 Methods and Functions:

If a function or method contains no statements or comments (such as an empty no-op implementation or when using constructor property promotion), then the body SHOULD be abbreviated as {} and placed on the same line as the previous symbol, separated by a space. For example:

class Point
{
    public function __construct(private int $x, private int $y) {}

    // ...
}

class Point
{
    public function __construct(
      public readonly int $x,
      public readonly int $y,
    ) {}
}

Thank you.