如何在Twig中使用PHP模板引擎而不是Silex 2中的Twig语法
在Silex2中,我可以使用Twig模板,但我想使用Twig的PHP引擎,而不是Twig语法。例如,介绍了如何为Symfony而不是Silex 2执行此操作 我的Silex如何在Twig中使用PHP模板引擎而不是Silex 2中的Twig语法,php,symfony,twig,silex,Php,Symfony,Twig,Silex,在Silex2中,我可以使用Twig模板,但我想使用Twig的PHP引擎,而不是Twig语法。例如,介绍了如何为Symfony而不是Silex 2执行此操作 我的Silexindex.php看起来像: $app->register(new Silex\Provider\TwigServiceProvider(), array( 'twig.path' => __DIR__.'/views', )); $app->get('/', function() use ($ap
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',
));
});
<p>Welcome to the index <?php echo $view->name; ?></p>
我的index.html.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',
));
});
<p>Welcome to the index <?php echo $view->name; ?></p>
尽管如此,这也不起作用:
$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
文件下面是如何在Silex中注册twig的:如果不想使用它,可以取消注册。实际上,我很想知道为什么你喜欢写
而不是{{name}
?这样容易多了!正如您在Silex中所看到的,不是内置的。你需要。@mickdev如果你不想使用Twig,你不需要“注销”它,你只需要不注册它。默认情况下不启用它。另外,正如所指出的,Twig没有“PHP引擎”,Twig是一个模板引擎,如果您不想使用它并且更喜欢使用,则需要为它创建一个并注册它(就像您可以使用现成的Twig提供程序一样)。附言:我不会走那条路…@mTorres我想我们谈论的是同一件事,我们说话的方式只是不同而已。无论如何,阿兰·天宝已经“翻译”了我最初的想法。也许会有帮助。