Fork me on GitHub
a Sensio Labs Product

15 Keys Accelerate (v3.54.0) edition

Rule phpdoc_order

Annotations in PHPDoc should be ordered in defined sequence.

Configuration

order

Sequence in which annotations in PHPDoc should be ordered.

Allowed types: string[]

Default value: ['param', 'throws', 'return']

Examples

Example #1

Default configuration.

--- Original
+++ New
 <?php
 /**
  * Hello there!
  *
- * @throws Exception|RuntimeException foo
  * @custom Test!
- * @return int  Return the number of changes.
  * @param string $foo
  * @param bool   $bar Bar
+ * @throws Exception|RuntimeException foo
+ * @return int  Return the number of changes.
  */

Example #2

With configuration: ['order' => ['param', 'throws', 'return']].

--- Original
+++ New
 <?php
 /**
  * Hello there!
  *
- * @throws Exception|RuntimeException foo
  * @custom Test!
- * @return int  Return the number of changes.
  * @param string $foo
  * @param bool   $bar Bar
+ * @throws Exception|RuntimeException foo
+ * @return int  Return the number of changes.
  */

Example #3

With configuration: ['order' => ['param', 'return', 'throws']].

--- Original
+++ New
 <?php
 /**
  * Hello there!
  *
- * @throws Exception|RuntimeException foo
  * @custom Test!
- * @return int  Return the number of changes.
  * @param string $foo
  * @param bool   $bar Bar
+ * @return int  Return the number of changes.
+ * @throws Exception|RuntimeException foo
  */

Example #4

With configuration: ['order' => ['param', 'custom', 'throws', 'return']].

--- Original
+++ New
 <?php
 /**
  * Hello there!
  *
+ * @param string $foo
+ * @param bool   $bar Bar
+ * @custom Test!
  * @throws Exception|RuntimeException foo
- * @custom Test!
  * @return int  Return the number of changes.
- * @param string $foo
- * @param bool   $bar Bar
  */

Rule sets

The rule is part of the following rule sets:

  • @PhpCsFixer with config:

    ['order' => ['param', 'return', 'throws']]

  • @Symfony with config:

    ['order' => ['param', 'return', 'throws']]

References

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