website/errors/interface.extendsDeprecatedEnum.md
<?php declare(strict_types = 1);
/** @deprecated Use NewStatus instead */
enum OldStatus
{
case Active;
case Inactive;
}
interface StatusInterface extends OldStatus // ERROR: Interface StatusInterface extends deprecated enum OldStatus.
{
}
This error is reported by phpstan/phpstan-deprecation-rules.
The interface extends an enum that has been marked with the @deprecated PHPDoc tag. Extending a deprecated type ties your interface to an implementation that is scheduled for removal or replacement. When the deprecated enum is eventually removed, the interface declaration will break.
Replace the deprecated enum with its recommended replacement:
<?php declare(strict_types = 1);
-interface StatusInterface extends OldStatus
+interface StatusInterface extends NewStatus
{
}
If the enum should not be extended at all, define the required contract directly on the interface:
<?php declare(strict_types = 1);
-interface StatusInterface extends OldStatus
+interface StatusInterface
{
+ public function label(): string;
}