GeneratedLink.php 1.38 KB
Newer Older
1 2 3 4
<?php

namespace Drupal\Core;

5
use Drupal\Component\Render\MarkupInterface;
6
use Drupal\Component\Utility\Unicode;
7
use Drupal\Core\Render\BubbleableMetadata;
8 9 10 11 12 13 14

/**
 * Used to return generated links, along with associated cacheability metadata.
 *
 * Note: not to be confused with \Drupal\Core\Link, which is for passing around
 *   ungenerated links (typically link text + route name + route parameters).
 */
15
class GeneratedLink extends BubbleableMetadata implements MarkupInterface, \Countable {
16

17 18 19 20 21
  /**
   * HTML tag to use when building the link.
   */
  const TAG = 'a';

22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
  /**
   * The HTML string value containing a link.
   *
   * @var string
   */
  protected $generatedLink = '';

  /**
   * Gets the generated link.
   *
   * @return string
   */
  public function getGeneratedLink() {
    return $this->generatedLink ;
  }

  /**
   * Sets the generated link.
   *
   * @param string $generated_link
   *   The generated link.
   *
   * @return $this
   */
  public function setGeneratedLink($generated_link) {
    $this->generatedLink = $generated_link;
    return $this;
  }

51 52 53 54 55 56 57 58 59 60 61 62 63 64
  /**
   * {@inheritdoc}
   */
  public function __toString() {
    return (string) $this->generatedLink;
  }

  /**
   * {@inheritdoc}
   */
  public function jsonSerialize() {
    return $this->__toString();
  }

65 66 67 68 69 70 71
  /**
   * {@inheritdoc}
   */
  public function count() {
    return Unicode::strlen($this->__toString());
  }

72
}