Я пытаюсь добавить новую функцию в файл расширения Twig, который включает в себя шаблон и анализирует переменные из включенного шаблона.И я понятия не имею, как получить переменную из импортированного шаблона.
Мои шаблоны
Config.html
{% set myVariable= "MyVariable" %}
template.html
{{layout("config") }}
My Config Variable: {{ myVariable }}
Это мой класс расширения веток.
class TwigExtensions extends \Twig_Extension {
public function getFunctions()
{
return array(
new \Twig_SimpleFunction(
'layout', array($this, 'twig_layout', ), [ 'needs_environment' => true, 'needs_context' => true, 'is_safe' => ['all'] ]
)
);
}
function twig_layout(\Twig_Environment &$env, &$context, $template, $variables = [], $withContext = true, $ignoreMissing = false, $sandboxed = false)
{
$file_name = (string)$template . ".html";
if ($withContext) {
$variables = array_merge($context, $variables);
}
$result = '';
try {
$result = $env->resolveTemplate($file_name)->render($variables);
// how to get variables from $file_name tempalte
} catch (Throwable $e) {
return "NULL"
}
return $result;
}
}