将twig库切换到symfony的TwigEngine

时间:2014-02-22 06:13:42

标签: php symfony twig

我有一个功能性的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响应,例如:创建“创建新消息页面”。

0 个答案:

没有答案