Version 1
[yaffs-website] / web / core / lib / Drupal / Component / Render / HtmlEscapedText.php
diff --git a/web/core/lib/Drupal/Component/Render/HtmlEscapedText.php b/web/core/lib/Drupal/Component/Render/HtmlEscapedText.php
new file mode 100644 (file)
index 0000000..b286f57
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+
+namespace Drupal\Component\Render;
+
+use Drupal\Component\Utility\Html;
+use Drupal\Component\Utility\Unicode;
+
+/**
+ * Escapes HTML syntax characters to HTML entities for display in markup.
+ *
+ * This class can be used to provide theme engine-like late escaping
+ * functionality.
+ *
+ * @ingroup sanitization
+ */
+class HtmlEscapedText implements MarkupInterface, \Countable {
+
+  /**
+   * The string to escape.
+   *
+   * @var string
+   */
+  protected $string;
+
+  /**
+   * Constructs an HtmlEscapedText object.
+   *
+   * @param $string
+   *   The string to escape. This value will be cast to a string.
+   */
+  public function __construct($string) {
+    $this->string = (string) $string;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function __toString() {
+    return Html::escape($this->string);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function count() {
+    return Unicode::strlen($this->string);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function jsonSerialize() {
+    return $this->__toString();
+  }
+
+}