Rule final_public_method_for_abstract_class
¶
All public
methods of abstract
classes should be final
.
Description¶
Enforce API encapsulation in an inheritance architecture. If you want to override a method, use the Template method pattern.
Warning¶
Using this rule is risky¶
Risky when overriding public
methods of abstract
classes.
Examples¶
Example #1¶
--- Original
+++ New
<?php
abstract class AbstractMachine
{
- public function start()
+ final public function start()
{}
}
References¶
Fixer class: PhpCsFixer\Fixer\ClassNotation\FinalPublicMethodForAbstractClassFixer
Test class: PhpCsFixer\Tests\Fixer\ClassNotation\FinalPublicMethodForAbstractClassFixerTest
The test class defines officially supported behaviour. Each test case is a part of our backward compatibility promise.