Menu

← Back to trait.*

Error Identifier: trait.deprecatedAttribute

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]
trait MyTrait
{
}

Why is it reported? #

The native #[\Deprecated] attribute is applied to a trait, but the current PHP version does not support this. The #[\Deprecated] attribute can only be used with traits starting from PHP 8.5.

On PHP versions earlier than 8.5, the attribute has no effect on traits and PHPStan reports this as an error.

This error is non-ignorable because it indicates incorrect usage of a language feature.

How to fix it #

If running PHP 8.5 or later, this error will not be reported.

For earlier PHP versions, use the @deprecated PHPDoc tag instead:

+/** @deprecated */
-#[\Deprecated]
 trait MyTrait
 {
 }

Alternatively, upgrade to PHP 8.5 or later to use the native attribute syntax.

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\ClassAttributesRule [1]
  • PHPStan\Rules\Traits\TraitAttributesRule [1]

Edit this page on GitHub

Theme
A
© 2026 PHPStan s.r.o.