phplibrary/src/View/Plain.php
2025-11-02 12:33:26 +03:00

76 lines
1.7 KiB
PHP

<?php
namespace ctiso\View;
/**
* Шаблон для PHP
*/
class Plain extends \stdClass
{
/** @var string */
protected $document;
/** @var array */
protected $values = [];
/**
* Конструктор
* @param string $document шаблон
*/
public function __construct ($document)
{
$this->document = $document;
}
/**
* Установка значения
* @param string $key ключ
* @param mixed $value значение
*/
public function set($key, $value): void
{
$this->values[$key] = $value;
}
/**
* Импорт значений
* @param array $list список значений
*/
public function import($list): void
{
$this->values = array_merge($this->values, $list);
}
/**
* @param string $key ключ
* @param mixed $value значение
*/
public function __set($key, $value): void
{
$this->set($key, $value);
}
/**
* Выполнение шаблона
* @return string
*/
public function execute()
{
$result = $this->values;
return self::getTemplateContent ($this->document, $result);
}
/**
* Получение содержимого шаблона
* @param string $document шаблон
* @param array $result результат
* @return string содержимое шаблона
*/
static function getTemplateContent(string $document, $result): string
{
ob_start ();
include ($document);
$content = ob_get_contents ();
ob_clean ();
return $content;
}
}