Fork me on GitHub
a Sensio Labs Product

7th Gear (v3.59.3) edition

Rule trailing_comma_in_multiline

Multi-line arrays, arguments list, parameters list and match expressions must have a trailing comma.

Configuration

after_heredoc

Whether a trailing comma should also be placed after heredoc end.

Allowed types: bool

Default value: false

elements

Where to fix multiline trailing comma (PHP >= 8.0 for parameters and match).

Allowed values: a subset of ['arguments', 'arrays', 'match', 'parameters']

Default value: ['arrays']

Examples

Example #1

Default configuration.

--- Original
+++ New
 <?php
 array(
     1,
-    2
+    2,
 );

Example #2

With configuration: ['after_heredoc' => true].

--- Original
+++ New
 <?php
     $x = [
         'foo',
         <<<EOD
             bar
-            EOD
+            EOD,
     ];

Example #3

With configuration: ['elements' => ['arguments']].

--- Original
+++ New
 <?php
 foo(
     1,
-    2
+    2,
 );

Example #4

With configuration: ['elements' => ['parameters']].

--- Original
+++ New
 <?php
 function foo(
     $x,
-    $y
+    $y,
 )
 {
 }

Rule sets

The rule is part of the following rule sets:

  • @PER with config:

    ['after_heredoc' => true, 'elements' => ['arguments', 'arrays', 'match', 'parameters']]

  • @PER-CS with config:

    ['after_heredoc' => true, 'elements' => ['arguments', 'arrays', 'match', 'parameters']]

  • @PER-CS2.0 with config:

    ['after_heredoc' => true, 'elements' => ['arguments', 'arrays', 'match', 'parameters']]

  • @PHP73Migration with config:

    ['after_heredoc' => true]

  • @PHP74Migration with config:

    ['after_heredoc' => true]

  • @PHP80Migration with config:

    ['after_heredoc' => true]

  • @PHP81Migration with config:

    ['after_heredoc' => true]

  • @PHP82Migration with config:

    ['after_heredoc' => true]

  • @PHP83Migration with config:

    ['after_heredoc' => true]

  • @PHP84Migration with config:

    ['after_heredoc' => true]

  • @PhpCsFixer

  • @Symfony

References

The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.