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.