link = $link; $this->description = $description; } public static function create( string $body, ?DescriptionFactory $descriptionFactory = null, ?TypeContext $context = null ) : self { Assert::notNull($descriptionFactory); $parts = Utils::pregSplit('/\s+/Su', $body, 2); $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; return new static($parts[0], $description); } /** * Gets the link */ public function getLink() : string { return $this->link; } /** * Returns a string representation for this tag. */ public function __toString() : string { if ($this->description) { $description = $this->description->render(); } else { $description = ''; } $link = (string) $this->link; return $link . ($description !== '' ? ($link !== '' ? ' ' : '') . $description : ''); } }