Mercurial > hg > isophonics-drupal-site
annotate core/lib/Drupal/Component/Render/MarkupTrait.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 129ea1e6d783 |
children |
rev | line source |
---|---|
Chris@0 | 1 <?php |
Chris@0 | 2 |
Chris@0 | 3 namespace Drupal\Component\Render; |
Chris@0 | 4 |
Chris@0 | 5 /** |
Chris@0 | 6 * Implements MarkupInterface and Countable for rendered objects. |
Chris@0 | 7 * |
Chris@0 | 8 * @see \Drupal\Component\Render\MarkupInterface |
Chris@0 | 9 */ |
Chris@0 | 10 trait MarkupTrait { |
Chris@0 | 11 |
Chris@0 | 12 /** |
Chris@0 | 13 * The safe string. |
Chris@0 | 14 * |
Chris@0 | 15 * @var string |
Chris@0 | 16 */ |
Chris@0 | 17 protected $string; |
Chris@0 | 18 |
Chris@0 | 19 /** |
Chris@0 | 20 * Creates a Markup object if necessary. |
Chris@0 | 21 * |
Chris@0 | 22 * If $string is equal to a blank string then it is not necessary to create a |
Chris@0 | 23 * Markup object. If $string is an object that implements MarkupInterface it |
Chris@0 | 24 * is returned unchanged. |
Chris@0 | 25 * |
Chris@0 | 26 * @param mixed $string |
Chris@0 | 27 * The string to mark as safe. This value will be cast to a string. |
Chris@0 | 28 * |
Chris@0 | 29 * @return string|\Drupal\Component\Render\MarkupInterface |
Chris@0 | 30 * A safe string. |
Chris@0 | 31 */ |
Chris@0 | 32 public static function create($string) { |
Chris@0 | 33 if ($string instanceof MarkupInterface) { |
Chris@0 | 34 return $string; |
Chris@0 | 35 } |
Chris@0 | 36 $string = (string) $string; |
Chris@0 | 37 if ($string === '') { |
Chris@0 | 38 return ''; |
Chris@0 | 39 } |
Chris@0 | 40 $safe_string = new static(); |
Chris@0 | 41 $safe_string->string = $string; |
Chris@0 | 42 return $safe_string; |
Chris@0 | 43 } |
Chris@0 | 44 |
Chris@0 | 45 /** |
Chris@0 | 46 * Returns the string version of the Markup object. |
Chris@0 | 47 * |
Chris@0 | 48 * @return string |
Chris@0 | 49 * The safe string content. |
Chris@0 | 50 */ |
Chris@0 | 51 public function __toString() { |
Chris@0 | 52 return $this->string; |
Chris@0 | 53 } |
Chris@0 | 54 |
Chris@0 | 55 /** |
Chris@0 | 56 * Returns the string length. |
Chris@0 | 57 * |
Chris@0 | 58 * @return int |
Chris@0 | 59 * The length of the string. |
Chris@0 | 60 */ |
Chris@0 | 61 public function count() { |
Chris@17 | 62 return mb_strlen($this->string); |
Chris@0 | 63 } |
Chris@0 | 64 |
Chris@0 | 65 /** |
Chris@0 | 66 * Returns a representation of the object for use in JSON serialization. |
Chris@0 | 67 * |
Chris@0 | 68 * @return string |
Chris@0 | 69 * The safe string content. |
Chris@0 | 70 */ |
Chris@0 | 71 public function jsonSerialize() { |
Chris@0 | 72 return $this->__toString(); |
Chris@0 | 73 } |
Chris@0 | 74 |
Chris@0 | 75 } |