Rule class_definition
¶
Whitespace around the keywords of a class, trait, enum or interfaces definition should be one space.
Configuration¶
inline_constructor_arguments
¶
Whether constructor argument list in anonymous classes should be single line.
Allowed types: bool
Default value: true
multi_line_extends_each_single_line
¶
Whether definitions should be multiline.
Allowed types: bool
Default value: false
single_item_single_line
¶
Whether definitions should be single line when including a single item.
Allowed types: bool
Default value: false
single_line
¶
Whether definitions should be single line.
Allowed types: bool
Default value: false
space_before_parenthesis
¶
Whether there should be a single space after the parenthesis of anonymous class (PSR12) or not.
Allowed types: bool
Default value: false
Examples¶
Example #1¶
Default configuration.
--- Original
+++ New
<?php
-class Foo extends Bar implements Baz, BarBaz
+class Foo extends Bar implements Baz, BarBaz
{
}
-final class Foo extends Bar implements Baz, BarBaz
+final class Foo extends Bar implements Baz, BarBaz
{
}
-trait Foo
+trait Foo
{
}
-$foo = new class extends Bar implements Baz, BarBaz {};
+$foo = new class extends Bar implements Baz, BarBaz {};
Example #2¶
With configuration: ['single_line' => true]
.
--- Original
+++ New
<?php
-class Foo
-extends Bar
-implements Baz, BarBaz
+class Foo extends Bar implements Baz, BarBaz
{}
Example #3¶
With configuration: ['single_item_single_line' => true]
.
--- Original
+++ New
<?php
-class Foo
-extends Bar
-implements Baz
+class Foo extends Bar implements Baz
{}
Example #4¶
With configuration: ['multi_line_extends_each_single_line' => true]
.
--- Original
+++ New
<?php
interface Bar extends
- Bar, BarBaz, FooBarBaz
+ Bar,
+ BarBaz,
+ FooBarBaz
{}
Example #5¶
With configuration: ['space_before_parenthesis' => true]
.
--- Original
+++ New
<?php
-$foo = new class(){};
+$foo = new class () {};
Example #6¶
With configuration: ['inline_constructor_arguments' => true]
.
--- Original
+++ New
<?php
-$foo = new class(
- $bar,
- $baz
-) {};
+$foo = new class($bar, $baz) {};
Rule sets¶
The rule is part of the following rule sets:
@PER with config:
['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]
@PER-CS with config:
['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]
@PER-CS1.0 with config:
['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]
@PER-CS2.0 with config:
['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]
@PSR12 with config:
['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]
@PhpCsFixer with config:
['single_line' => true]
@Symfony with config:
['single_line' => true]
References¶
Fixer class: PhpCsFixer\Fixer\ClassNotation\ClassDefinitionFixer
Test class: PhpCsFixer\Tests\Fixer\ClassNotation\ClassDefinitionFixerTest
The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.