A Description object can consist of plain text but can also include tags. A Description Formatter can then combine
a body template with sprintf-style placeholders together with formatted tags in order to reconstitute a complete
description text using the format that you would prefer.
Because parsing a Description text can be a verbose process this is handled by the {@see \DescriptionFactory}. It is
thus recommended to use that to create a Description object, like this:
$description = $descriptionFactory->create('This is a {@see \Description}', $context);
The description factory will interpret the given body and create a body template and list of tags from them, and pass
that onto the constructor if this class.
> The $context variable is a class of type {@see \phpDocumentor\Reflection\Types\Context} and contains the namespace
> and the namespace aliases that apply to this DocBlock. These are used by the Factory to resolve and expand partial
> type names and FQSENs.
If you do not want to use the DescriptionFactory you can pass a body template and tag listing like this:
$description = new Description(
'This is a %1$s',
[ new See(new Fqsen('\phpDocumentor\Reflection\DocBlock\Description')) ]
);
It is generally recommended to use the Factory as that will also apply escaping rules, while the Description object
is mainly responsible for rendering.