doc/rules/class_notation/class_attributes_separation.rst
class_attributes_separationClass, trait and interface elements must be separated with one or none blank line.
This rule is CONFIGURABLE
You can configure this rule using the following option: ``elements``.
Configuration
-------------
``elements``
~~~~~~~~~~~~
Dictionary of ``const|method|property|trait_import|case`` =>
``none|one|only_if_meta`` values.
Allowed types: ``array<string, string>``
Default value: ``['const' => 'one', 'method' => 'one', 'property' => 'one', 'trait_import' => 'none', 'case' => 'none']``
Examples
--------
Example #1
~~~~~~~~~~
*Default* configuration.
.. code-block:: diff
--- Original
+++ New
<?php
final class Sample
{
protected function foo()
{
}
+
protected function bar()
{
}
-
-
}
Example #2
~~~~~~~~~~
With configuration: ``['elements' => ['property' => 'one']]``.
.. code-block:: diff
--- Original
+++ New
<?php
class Sample
-{private $a; // foo
+{
+private $a; // foo
+
/** second in a hour */
private $b;
}
Example #3
~~~~~~~~~~
With configuration: ``['elements' => ['const' => 'one']]``.
.. code-block:: diff
--- Original
+++ New
<?php
class Sample
{
const A = 1;
+
/** seconds in some hours */
const B = 3600;
}
Example #4
~~~~~~~~~~
With configuration: ``['elements' => ['const' => 'only_if_meta']]``.
.. code-block:: diff
--- Original
+++ New
<?php
class Sample
{
/** @var int */
const SECOND = 1;
+
/** @var int */
const MINUTE = 60;
-
const HOUR = 3600;
-
const DAY = 86400;
}
Example #5
~~~~~~~~~~
With configuration: ``['elements' => ['property' => 'only_if_meta']]``.
.. code-block:: diff
--- Original
+++ New
<?php
class Sample
{
public $a;
+
#[SetUp]
public $b;
+
/** @var string */
public $c;
+
/** @internal */
#[Assert\String()]
public $d;
-
public $e;
}
Rule sets
---------
The rule is part of the following rule sets:
- `@PhpCsFixer <./../../ruleSets/PhpCsFixer.rst>`_ with config:
``['elements' => ['method' => 'one']]``
- `@Symfony <./../../ruleSets/Symfony.rst>`_ with config:
``['elements' => ['method' => 'one']]``
References
----------
- Fixer class: `PhpCsFixer\\Fixer\\ClassNotation\\ClassAttributesSeparationFixer <./../../../src/Fixer/ClassNotation/ClassAttributesSeparationFixer.php>`_
- Test class: `PhpCsFixer\\Tests\\Fixer\\ClassNotation\\ClassAttributesSeparationFixerTest <./../../../tests/Fixer/ClassNotation/ClassAttributesSeparationFixerTest.php>`_
The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.