123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- =========================
- 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.
- .. code-block:: diff
- --- 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]``.
- .. code-block:: diff
- --- 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]``.
- .. code-block:: diff
- --- 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]``.
- .. code-block:: diff
- --- Original
- +++ New
- <?php
- interface Bar extends
- - Bar, BarBaz, FooBarBaz
- + Bar,
- + BarBaz,
- + FooBarBaz
- {}
- Example #5
- ~~~~~~~~~~
- With configuration: ``['space_before_parenthesis' => true]``.
- .. code-block:: diff
- --- Original
- +++ New
- <?php
- -$foo = new class(){};
- +$foo = new class () {};
- Example #6
- ~~~~~~~~~~
- With configuration: ``['inline_constructor_arguments' => true]``.
- .. code-block:: diff
- --- 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 <./../../ruleSets/PER.rst>`_ with config:
- ``['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]``
- - `@PER-CS <./../../ruleSets/PER-CS.rst>`_ with config:
- ``['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]``
- - `@PER-CS1.0 <./../../ruleSets/PER-CS1.0.rst>`_ with config:
- ``['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]``
- - `@PER-CS2.0 <./../../ruleSets/PER-CS2.0.rst>`_ with config:
- ``['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]``
- - `@PSR2 <./../../ruleSets/PSR2.rst>`_
- - `@PSR12 <./../../ruleSets/PSR12.rst>`_ with config:
- ``['inline_constructor_arguments' => false, 'space_before_parenthesis' => true]``
- - `@PhpCsFixer <./../../ruleSets/PhpCsFixer.rst>`_ with config:
- ``['single_line' => true]``
- - `@Symfony <./../../ruleSets/Symfony.rst>`_ with config:
- ``['single_line' => true]``
- References
- ----------
- - Fixer class: `PhpCsFixer\\Fixer\\ClassNotation\\ClassDefinitionFixer <./../../../src/Fixer/ClassNotation/ClassDefinitionFixer.php>`_
- - Test class: `PhpCsFixer\\Tests\\Fixer\\ClassNotation\\ClassDefinitionFixerTest <./../../../tests/Fixer/ClassNotation/ClassDefinitionFixerTest.php>`_
- The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.
|