Как использовать механизм шаблонов PHP в Twig вместо синтаксиса Twig в Silex 2

В Silex2 я могу использовать шаблоны Twig, но я хочу использовать PHP-движок Twig вместо синтаксиса Twig. Например, это руководство описывает, как это сделать для Symfony, но не Silex 2 .

Мой Silex index.php выглядит так:

 $app->register(new Silex\Provider\TwigServiceProvider(), array( 'twig.path' => __DIR__.'/views', )); $app->get('/', function() use ($app) { return $app['twig']->render('index.html.php', array( 'name' => 'Bob', )); }); 

Мой index.html.php выглядит так:

 <p>Welcome to the index <?php echo $view->name; ?></p> 

Когда я запускаю приложение в браузере и просматриваю источник, я вижу буквальную строку <?php echo $view->name; ?> <?php echo $view->name; ?> который не был выполнен.

Я подозреваю, что может быть настройка конфигурации Twig, чтобы сказать, что я хочу использовать шаблоны стиля PHP. Чтобы уточнить, если я использую синтаксис Twig, например:

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

Затем он работает, и я вижу имя Bob, поэтому я знаю, что это не проблема веб-сервера или PHP.

Этот код не работал для меня:

 $app['template'] = function($app) use($settings) { $loader = new \Symfony\Component\Templating\Loader\FilesystemLoader([ BASE_DIR . $settings->templates_path ]); $nameParser = new \Symfony\Component\Templating\TemplateNameParser(); $templating = new \Symfony\Component\Templating\PhpEngine($nameParser, $loader); return $templating; }; 

хотя, это тоже не работает:

 $app->register(new NS\ViewServiceProvider(), [ 'view.path' => BASE_DIR . $settings->templates_path, ]); 

ViewServiceProvider :

 class ViewServiceProvider implements ServiceProviderInterface { public function register(Container $app) { $app['view'] = function($app) { $engine = $app['view.engine']; $helpers = isset($app['view.helpers']) ? $app['view.helpers'] : array(); $helpers = array_merge($helpers, $app['view.default_helpers']); $engine->setHelpers($helpers); return $engine; }; $app['view.engine'] = function($app) { return new PhpEngine($app['view.parser'], $app['view.loader']); }; $app['view.loader'] = function($app) { $paths = isset($app['view.path']) ? $app['view.path'] : array(); return new FileSystemLoader($paths); }; $app['view.parser'] = function() { return new TemplateNameParser; }; $app['view.default_helpers'] = function() { return array( new \Symfony\Component\Templating\Helper\SlotsHelper ); }; } } 

Оба view.php ошибку, которая не может найти файл view.php