Skip to content
Advertisement

Using HTML.PHP instead of html.twig – not working

class DefaultController extends Controller
{
    public function indexAction($page, $name) {
        return $this->render('default/new.html.php'
        //         , array(
        //     $name => 'bob'
        // )
        );
    }
}

new.html.php

<p>Welcome to the index <?= $name; ?></p> 

When I use this code it is returning an error message.

But,

<p>Welcome to the index {{ name }}

this returns me correct output.

I want to use .html.php instead of .html.twig

I am going through this https://symfony.com/doc/3.4/templating/PHP.html

routing.yml

app:
    path:      /dd
    defaults:
        _controller: AppBundle:Default:index
        page:        1
        name:       "bob"

config.yml

framework:
    # ...
    templating:
        engines: ['twig', 'php']

Note: I am using ubuntu16.04 and Symfony 3.4

Advertisement

Answer

Tried locally according to Symfony documentation:

/**
 * @Route("/test", name="test_route")
 */
public function test()
{
    return $this->render(
        'test.html.php',
        [
            'test_var' => 'Hello test',
        ]
    );
}

My test.html.php:

<?php
echo $test_var;

This outputs Hello test.

PS: Tried get_defined_vars();, the variable should be seen there.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement