cross-posted from: https://chrastecky.dev/post/13
This change is quite straightforward, so this won’t be a long article. PHP 8.5 adds support for annotating non-class, compile-time constants with attributes. Compile-time constants are those defined using the
constkeyword, not thedefine()function.Attributes can now include
Attribute::TARGET_CONSTANTamong their valid targets. Additionally, as the name suggests,Attribute::TARGET_ALLnow includes constants as well. TheReflectionConstantclass has been updated with a new method,getAttributes(), to support retrieving these annotations.One particularly useful aspect of this change is that the built-in
#[Deprecated]attribute can now be applied to compile-time constants.As promised, this was a short post, since the change is relatively simple. See you next time—hopefully with a more exciting new feature in PHP 8.5!

