setContent($content)
->setUrl($url)
->getAttributes()
->add($attributes)
->registerAttributeCallback('href', [$this, 'createHrefAttribute']);
}
/**
* Get the URL of the link
*
* @return Url
*/
public function getUrl()
{
return $this->url;
}
/**
* Set the URL of the link
*
* @param Url|string $url
*
* @return $this
*/
public function setUrl($url)
{
if (! $url instanceof Url) {
try {
$url = Url::fromPath($url);
} catch (\Exception $e) {
$url = 'invalid';
}
}
$this->url = $url;
return $this;
}
/**
* Create and return the href attribute
*
* Used as attribute callback for the href attribute.
*
* @return Attribute
*/
public function createHrefAttribute()
{
return new Attribute('href', (string) $this->getUrl());
}
}