website/errors/return.deprecatedInterface.md
<?php declare(strict_types = 1);
/** @deprecated Use NewInterface instead */
interface OldInterface
{
}
function createHandler(): OldInterface
{
// ...
}
This error is reported by the phpstan-deprecation-rules extension.
The native return type declaration of a function or method references an interface that is marked as @deprecated. Using a deprecated interface in a return type creates a dependency on a symbol that is scheduled for removal or replacement. Callers of this function will also depend on the deprecated interface.
Replace the deprecated interface in the return type with its recommended replacement:
<?php declare(strict_types = 1);
-function createHandler(): OldInterface
+function createHandler(): NewInterface
{
// ...
}
If the function is itself deprecated, the error will not be reported. Mark the function as deprecated to suppress the error if the function is part of a deprecation migration:
<?php declare(strict_types = 1);
+/** @deprecated Use createNewHandler() instead */
function createHandler(): OldInterface
{
// ...
}