Menu

← Back to class.*

Error Identifier: class.extendsInterface

Every error reported by PHPStan has an error identifier. Here’s a list of all error identifiers. In PHPStan Pro you can see the error identifier next to each error and filter errors by their identifiers.

Code example #

<?php declare(strict_types = 1);

interface BazInterface
{
}

class Foo extends BazInterface
{
}

Why is it reported? #

A class is attempting to extend an interface using the extends keyword. In PHP, classes cannot extend interfaces. Interfaces must be implemented using the implements keyword instead. The extends keyword is only valid for extending another class.

This is a compile-level error in PHP and will cause a fatal error at runtime.

How to fix it #

Use implements instead of extends when a class needs to use an interface:

 <?php declare(strict_types = 1);
 
 interface BazInterface
 {
 }

-class Foo extends BazInterface
+class Foo implements BazInterface
 {
 }

Non-ignorable error #

This error cannot be ignored using @phpstan-ignore or the ignoreErrors configuration. Non-ignorable errors indicate code that would cause a crash or a fatal error at runtime, or a fundamental problem in the analysed code that must be addressed.

Rules that report this error #

  • PHPStan\Rules\Classes\ExistingClassInClassExtendsRule [1]

Edit this page on GitHub

Theme
A
© 2026 PHPStan s.r.o.