我有一个功能性的php-twig网站。现在我正在尝试在symfony2框架上运行这个网站。
目前我正在尝试使用symfony的TwigEngine进行模板处理(通过渲染方法)。
网站目前实例化一个twigenvironment来处理模板,但它使用renderblock函数进行一些处理:
这里是一些用于渲染模板的代码。$ twig是一个twig_environment。
我知道写的不是很少,也可能没用多少。
代码非常分散,所以无法获得所有相关部分。
请评论有关其任何部分的信息,我会尝试从代码中提取它。
if ($type == 'file') {
$template = $twig->loadTemplate($data);
$GLOBALS['twigCurrentLoadedTemplate'] = &$template;
$result = $template->render($params);
} elseif ($type == 'block') {
if (isset($GLOBALS['twigTemplateBlocks']) &&
isset($GLOBALS['twigTemplateBlocks'][$data['name']])) {
$template = $twig->loadTemplate($GLOBALS['twigTemplateBlocks'][$data['name']]);
} elseif (!isset($data['template'])) {
$template = $GLOBALS['twigCurrentLoadedTemplate'];
} else {
$template = &$data['template'];//$twig->loadTemplate($data['file']);
}
$params['blockNameToRender'] = $data['name'];
$result = $template->renderBlock($data['name'], $params);
}
如果代码太无用了,一般关于renderblock和render方法的一些信息会很好,你可以将一些假设的代码或模板转换为使用render而不是renderblock。
更新:我发现renderblock方法用于创建ajax响应,例如:创建“创建新消息页面”。