Fork me on GitHub
a Sensio Labs Product

Mountains (v3.2.1) edition

Rule final_internal_class

Internal classes should be final.

Warning

Using this rule is risky.

Changing classes to final might cause code execution to break.

Configuration

annotation_include

Class level annotations tags that must be set in order to fix the class. (case insensitive)

Allowed types: array

Default value: ['@internal']

annotation_exclude

Class level annotations tags that must be omitted to fix the class, even if all of the white list ones are used as well. (case insensitive)

Allowed types: array

Default value: ['@final', '@Entity', '@ORM\\Entity', '@ORM\\Mapping\\Entity', '@Mapping\\Entity', '@Document', '@ODM\\Document']

consider_absent_docblock_as_internal_class

Should classes without any DocBlock be fixed to final?

Allowed types: bool

Default value: false

Examples

Example #1

Default configuration.

--- Original
+++ New
 <?php
 /**
  * @internal
  */
-class Sample
+final class Sample
 {
 }

Example #2

With configuration: ['annotation_include' => ['@Custom'], 'annotation_exclude' => ['@not-fix']].

--- Original
+++ New
 <?php
 /**
  * @CUSTOM
  */
-class A{}
+final class A{}

 /**
  * @CUSTOM
  * @not-fix
  */
 class B{}

Rule sets

The rule is part of the following rule set:

@PhpCsFixer:risky

Using the @PhpCsFixer:risky rule set will enable the final_internal_class rule with the default config.

The logo is © 2010-2014 Sensio Labs