Fork me on GitHub
a Sensio Labs Product

Mountains (v3.2.1) edition

Rule class_definition

Whitespace around the keywords of a class, trait or interfaces definition should be one space.

Configuration

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 () {};

Rule sets

The rule is part of the following rule sets:

@PSR12

Using the @PSR12 rule set will enable the class_definition rule with the config below:

['space_before_parenthesis' => true]

@PSR2

Using the @PSR2 rule set will enable the class_definition rule with the default config.

@PhpCsFixer

Using the @PhpCsFixer rule set will enable the class_definition rule with the config below:

['single_line' => true]

@Symfony

Using the @Symfony rule set will enable the class_definition rule with the config below:

['single_line' => true]

The logo is © 2010-2014 Sensio Labs