Symfony教程错了?

时间:2013-03-03 18:58:00

标签: php symfony twig

我试图按照symfony教程:

http://symfony.com/doc/current/book/page_creation.html#step-1-create-the-route

但在某个时刻我决定使用php代替twig。

所以我在第3步尝试使用模板,我的页面显示了这一行

extend('::base.html.php') ?> Hello escape($name) ?>!

不确定这是否是教程中的错误,因为他们通常选择使用twig工作或者我做错了什么。 它就像我的页面在尝试扩展它时无法识别php。

这是我正在尝试渲染的页面的完整代码:

<!-- src/Acme/HelloBundle/Resources/views/Hello/index.html.php -->
<?php $view->extend('::base.html.php') ?>

Hello <?php echo $view->escape($name) ?>!

我在这个网址运行页面http:// localhost:8080 / web / app_dev.php / hello / Peter

这是我的控制者:

class HelloController extends Controller
{
    public function indexAction($name)
    {
        // return $this->render(
        //    'AcmeHelloBundle:Hello:index.html.twig',
        //    array('name' => $name)
        // );

        // render a PHP template instead
         return $this->render(
             'AcmeHelloBundle:Hello:index.html.php',
             array('name' => $name)
         );
    }
}

和我的基地:

!-- app/Resources/views/base.html.php -->
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title><?php $view['slots']->output('title', 'Welcome!') ?></title>
        <?php $view['slots']->output('stylesheets') ?>
        <link rel="shortcut icon" href="<?php echo $view['assets']->getUrl('favicon.ico') ?>" />
    </head>
    <body>
        <?php $view['slots']->output('_content') ?>
        <?php $view['slots']->output('javascripts') ?>
    </body>
</html>

请注意我使用的是/ web /,它不在教程中。这可能与问题有关吗?因为我告诉基础模型是::?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

如果您查看文档中的"How to use PHP instead of Twig for Templates"文章,您会发现需要将PHP注册为模板引擎。

假设您使用Yaml作为配置格式:

# app/config/config.yml
framework:
    # ...
    templating:    { engines: ['twig', 'php'] }