MultiTag
This tag acts as a wrapper around other tags, grouping them in some way
/**
 * @method string getBar()
 * @method int|Foo getFoo()
 */
class Foo
{
}
There’s already a MultiTag wrapper aroung @method tag in PhpDocumentor::tags(), but for the sake of example we’ll reinit it here, as if it’s not there yet.
MultiTag constructor accepts the following parameters:
- name
- tag, that will be grouped
- tag field name, which value will be used as a key in result array
$doc = (new ReflectionClass('Foo'))->getDocComment();
$methodTag = new MethodTag('method', $fqsenConverter); //$fqsenConverter can be specified or ommited
$customTags = [new MultiTag('methods', $methodTag, 'name')];
$notations = getNotations($doc, $customTags);
var_export($notations);
Result:
[
    'methods' => [
        'getBar' => [
            'return_type' => 'string',
            'name' => 'getBar'
        ],
        'getFoo' => [
            'return_type' => 'int|Foo',
            'name' => 'getFoo'
        ]
    ]
]