final в ООП PHP – это модификатор, который запрещает переопределение или наследование.
Он может применяться к:
- классу
- методу
final на классе
final class TemplateUtils { ... }
class MyTemplateUtils extends TemplateUtils { } // ❌ Fatal error
final на методах
// Plugin.php
abstract class Plugin
{
final public static function getInstance(): static { ... }
final private function __construct() { }
}
final method = наследник не может переопределить:
class CpmExtraFeatures extends Plugin
{
// Нельзя:
public static function getInstance(): static { ... } // ❌ Fatal error
// Нельзя:
private function __construct() { ... } // ❌ Fatal error
}
Правило
Класс с только static методами, без состояния → final class
Метод, который обеспечивает архитектурную → final method
гарантию (Singleton, безопасность)