Menu

← Back to class.*

Error Identifier: class.implementsDeprecatedEnum

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);

/** @deprecated Use NewInterface instead */
enum OldEnum
{
	case Foo;
}

class Bar implements OldEnum
{
}

Why is it reported? #

This error is reported by the phpstan-deprecation-rules extension.

A class has a deprecated enum in its implements clause. The enum is marked as @deprecated and is planned for removal.

In the example above, class Bar references OldEnum in its implements clause, and OldEnum is deprecated. Note that using an enum in implements is also invalid PHP – only interfaces can be implemented.

How to fix it #

Replace the deprecated enum with a proper interface:

 <?php declare(strict_types = 1);
 
-class Bar implements OldEnum
+class Bar implements NewInterface
 {
 }

How to ignore this error #

You can use the identifier class.implementsDeprecatedEnum to ignore this error using a comment:

// @phpstan-ignore class.implementsDeprecatedEnum
codeThatProducesTheError();

You can also use only the identifier key to ignore all errors of the same type in your configuration file in the ignoreErrors parameter:

parameters:
	ignoreErrors:
		-
			identifier: class.implementsDeprecatedEnum

Rules that report this error #

  • PHPStan\Rules\Deprecations\RestrictedDeprecatedClassNameUsageExtension [1] phpstan/phpstan-deprecation-rules

Edit this page on GitHub

Theme
A
© 2026 PHPStan s.r.o.