Is there a way for phpDoc to document an array of objects as a parameter?

cori picture cori · Feb 3, 2012 · Viewed 16.5k times · Source

In phpDoc-generated documentation I can cause phpDoc to generate a link to a custom type definition for a given param using

@param CustomType $variablename

and that works great. However, the code I'm currently documenting requires CustomType[] parameters, i.e. an array of said CustomType. I want the documentation to be clear that an array is required, but when I use

@param CustomType[] $variablename

phpDoc no longer recognizes the type, and thus can't link to it's definition. This is pretty important in this case - I'm documenting an API that has some fairly complex types that need to be provided.

I've tried several different syntaxes for this and all either treat the entries as separate variable types or break type recognition in the documentation.

Barring this I'll just note it in the parameter note, but it seems more clear to show the array-ness of the parameter in the type.

EDIT

With phpDocumentor 2 (which merged with DocBlox) the

@param CustomType[] $paramName

syntax works, and as noted in @Styx's answer PhpStorm supports type-hinting with that syntax.

Accepted answer updated appropriately.

Answer

Styx picture Styx · Sep 5, 2012

New version of PHP doc support /** @var sometype[] */ syntax. Even more complicated: /** @var (sometype|othertype)[] */. http://www.phpdoc.org/docs/latest/guides/types.html#arrays PHPStorm also support this syntax.