Advanced Tags
The Advanced Tags are a small set of tags that were originally introduced by individual static analyzers — chiefly Psalm and PHPStan — to express things the classic phpDocumentor vocabulary never covered: purity, by-reference output parameters, how a closure is invoked, whether a class may grow magic members. Over time these spellings became common enough that both analyzers came to accept them without a vendor prefix, and that is exactly how they are grouped here.
In other words, this is the vendor-neutral middle ground: less universal than the Standard Tags, but no longer tied to a single tool's @psalm-* or @phpstan-* namespace either. You write @param-out, not @psalm-param-out; @pure-unless-callable-is-impure, not its prefixed form.
What Belongs Here
Purity and side effects — @pure-unless-callable-is-impure, which marks a function pure except when a callable it is handed is itself impure.
By-reference output — @param-out, describing the type a parameter holds after the call rather than the type it accepts.
How a callable is invoked — @param-closure-this binds the
$thisa closure parameter runs against, while @param-immediately-invoked-callable and @param-later-invoked-callable distinguish a callback called before the function returns from one stored for later.Sealing magic members — @seal-methods and @seal-properties forbid a class from resolving any magic member not explicitly declared.
Diagnostics — @suppress silences named issues on an element, and @unused-param marks a parameter kept only for signature compatibility.
Calling conventions — @no-named-arguments declares that a function must not be called with named arguments, and @not-deprecated asserts an element is explicitly not deprecated despite what surrounding code might suggest.
Like the standard set, every tag in this group is fully recognized: it parses into a dedicated, typed object, with any type it carries read through the same TypeLang grammar used everywhere else. Open any entry in the sidebar for its grammar, resulting object, and examples.