123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- namespace Drupal\Core;
- use Drupal\Core\Render\RenderableInterface;
- use Drupal\Core\Routing\LinkGeneratorTrait;
- /**
- * Defines an object that holds information about a link.
- */
- class Link implements RenderableInterface {
- /**
- * @deprecated in Drupal 8.0.x-dev, will be removed before Drupal 9.0.0.
- */
- use LinkGeneratorTrait;
- /**
- * The text of the link.
- *
- * @var string
- */
- protected $text;
- /**
- * The URL of the link.
- *
- * @var \Drupal\Core\Url
- */
- protected $url;
- /**
- * Constructs a new Link object.
- *
- * @param string $text
- * The text of the link.
- * @param \Drupal\Core\Url $url
- * The url object.
- */
- public function __construct($text, Url $url) {
- $this->text = $text;
- $this->url = $url;
- }
- /**
- * Creates a Link object from a given route name and parameters.
- *
- * @param string $text
- * The text of the link.
- * @param string $route_name
- * The name of the route
- * @param array $route_parameters
- * (optional) An associative array of parameter names and values.
- * @param array $options
- * The options parameter takes exactly the same structure.
- * See \Drupal\Core\Url::fromUri() for details.
- *
- * @return static
- */
- public static function createFromRoute($text, $route_name, $route_parameters = [], $options = []) {
- return new static($text, new Url($route_name, $route_parameters, $options));
- }
- /**
- * Creates a Link object from a given Url object.
- *
- * @param string $text
- * The text of the link.
- * @param \Drupal\Core\Url $url
- * The Url to create the link for.
- *
- * @return static
- */
- public static function fromTextAndUrl($text, Url $url) {
- return new static($text, $url);
- }
- /**
- * Returns the text of the link.
- *
- * @return string
- */
- public function getText() {
- return $this->text;
- }
- /**
- * Sets the new text of the link.
- *
- * @param string $text
- * The new text.
- *
- * @return $this
- */
- public function setText($text) {
- $this->text = $text;
- return $this;
- }
- /**
- * Returns the URL of the link.
- *
- * @return \Drupal\Core\Url
- */
- public function getUrl() {
- return $this->url;
- }
- /**
- * Sets the URL of this link.
- *
- * @param Url $url
- * The URL object to set
- *
- * @return $this
- */
- public function setUrl(Url $url) {
- $this->url = $url;
- return $this;
- }
- /**
- * Generates the HTML for this Link object.
- *
- * Do not use this method to render a link in an HTML context. In an HTML
- * context, self::toRenderable() should be used so that render cache
- * information is maintained. However, there might be use cases such as tests
- * and non-HTML contexts where calling this method directly makes sense.
- *
- * @return \Drupal\Core\GeneratedLink
- * The link HTML markup.
- *
- * @see \Drupal\Core\Link::toRenderable()
- */
- public function toString() {
- return $this->getLinkGenerator()->generateFromLink($this);
- }
- /**
- * {@inheritdoc}
- */
- public function toRenderable() {
- return [
- '#type' => 'link',
- '#url' => $this->url,
- '#title' => $this->text,
- ];
- }
- }
|