/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/helpers/TwigHelper.php
51 строка
2 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\helpers; use Twig\Error\LoaderError; use Twig\Error\RuntimeError; use Twig\Error\SyntaxError; use Twig_Loader_Array; use Yii; use yii\base\InvalidCallException; use yii\base\InvalidConfigException; /** * Вспомогательные функции для работы с шаблонами * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2019-2021 */ class TwigHelper { /** * Собрать представление из шаблона в виде строки * * @param array $sources массив исходников шаблонов, обязательно должен быть элемент массива 'main' * @param array $params параметры для подстановки в шаблон * @return string * @throws LoaderError * @throws RuntimeError * @throws SyntaxError * @throws InvalidConfigException */ public static function render($sources, $params = []) { if (!ArrayHelper::getValue($sources, 'main')) { throw new InvalidCallException(Yii::t('app', 'Массив источников шаблонов должен содержать шаблон с именем "main"')); } $config = ArrayHelper::getValue(Yii::$app->view->renderers, 'twig'); if ($config) { /** @var yii\twig\ViewRenderer $renderer */ $renderer = Yii::createObject($config); $renderer->twig->setLoader(new Twig_Loader_Array($sources)); return $renderer->twig->render('main', $params); } else { return false; } } }