magento-coding-standard icon indicating copy to clipboard operation
magento-coding-standard copied to clipboard

Conflicts with PER-CS 2.0 in regards with formatting braces for empty classes

Open hostep opened this issue 9 months ago • 2 comments

Preconditions

  1. Have a class like this:
<?php

declare(strict_types=1);

namespace Some\Namespace;

use Magento\Framework\Exception\LocalizedException;

class SomeException extends LocalizedException {}

Steps to reproduce

  1. Run Magento's phpcs coding standard against this class

Expected result

  1. No errors, as PER-CS 2.0 expects:

If class contains no additional declarations (such as an exception that exists only to extend another exception with a new type), then the body of the class SHOULD be abbreviated as {} and placed on the same line as the previous symbol, separated by a space. For example:

class MyException extends \RuntimeException {}

Actual result

  1. It outputs:
--------------------------------------------------------------------------------------------------------------------------------------
FOUND 0 ERRORS AND 2 WARNINGS AFFECTING 1 LINE
--------------------------------------------------------------------------------------------------------------------------------------
 9 | WARNING | [x] Opening brace of a class must be on the line after the definition
   |         |     (PSR2.Classes.ClassDeclaration.OpenBraceNewLine)
 9 | WARNING | [x] Closing brace must be on a line by itself (Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore)
--------------------------------------------------------------------------------------------------------------------------------------

Discussion

When you use php-cs-fixer with the PER-CS 2.0 ruleset, it conflicts with this Magento2 phpcs standard.

Not sure if this should be considered a bug in the M2 coding-standards, or more of a bug in phpcs itself?

hostep avatar Sep 26 '23 18:09 hostep