Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Phrase.php
Go to the documentation of this file.
1 <?php
8 namespace Magento\Framework;
9 
10 use Magento\Framework\Phrase\Renderer\Placeholder as RendererPlaceholder;
12 
17 class Phrase implements \JsonSerializable
18 {
24  private static $renderer;
25 
31  private $text;
32 
38  private $arguments;
39 
46  public static function setRenderer(RendererInterface $renderer)
47  {
48  self::$renderer = $renderer;
49  }
50 
56  public static function getRenderer()
57  {
58  if (!self::$renderer) {
59  self::$renderer = new RendererPlaceholder();
60  }
61  return self::$renderer;
62  }
63 
70  public function __construct($text, array $arguments = [])
71  {
72  $this->text = (string)$text;
73  $this->arguments = $arguments;
74  }
75 
81  public function getText()
82  {
83  return $this->text;
84  }
85 
91  public function getArguments()
92  {
93  return $this->arguments;
94  }
95 
101  public function render()
102  {
103  try {
104  return self::getRenderer()->render([$this->text], $this->getArguments());
105  } catch (\Exception $e) {
106  return $this->getText();
107  }
108  }
109 
115  public function __toString()
116  {
117  return $this->render();
118  }
119 
125  public function jsonSerialize()
126  {
127  return $this->render();
128  }
129 }
__construct($text, array $arguments=[])
Definition: Phrase.php:70
static setRenderer(RendererInterface $renderer)
Definition: Phrase.php:46