本文概述
- 1.安装Symfony模板引擎
- 2.实施模板引擎
- 3.使用PHP模板引擎
1.安装Symfony模板引擎【如何在Silex中将PHP用作模板引擎而不是Twig】每个具有基本PHP知识的人都可以使用PHP实现自己的silex模板引擎, 但是, 有了Symfony模板引擎, 有一种更好的方法可以做到这一点。 Symfony的模板组件提供了使用纯PHP构建任何类型的模板系统所需的所有工具。它提供了一个基础结构来加载模板文件, 并可以选择监视它们的更改。它还提供了使用PHP的具体模板引擎实现, 以及用于将模板转义和分离为块和布局的其他工具。
要在Silex中使用它, 你需要使用composer和以下命令来安装组件:
composer require symfony/templating
安装该组件后, 你将能够导入开始渲染PHP模板所需的类, 而不是Silex中的Twig。
2.实施模板引擎如你所知, 你可以轻松地将自定义内容分配给silex的$ app变量, 以这种方式定义了许多组件, 例如twig, db等。以同样的方式, 我们将注册不会覆盖Twig的呈现服务, 因为你可能也需要它(或可能不需要, 但是你可以同时保留两者)。在你的app.php文件(或$ app可用的入口点)中注册该组件:
<
?php// ./project/src/app.php// Include the Symfony Templating Engine required classesuse Symfony\Component\Templating\PhpEngine;
use Symfony\Component\Templating\TemplateNameParser;
use Symfony\Component\Templating\Loader\FilesystemLoader;
// Register the "templating" provider$app['templating'] = function(){// Provide the paths where $loader = new FilesystemLoader(array(// Assuming that you have the templates inside// the ./yourproject/phptemplates/ directory:// Note: %name% needs to be at the end of the path__DIR__ . '/../phptemplates/%name%'));
$templating = new PhpEngine(new TemplateNameParser(), $loader);
return $templating;
};
3.使用PHP模板引擎PHP模板引擎的逻辑保持不变, 你将返回render方法的结果, 该方法期望将要呈现的php文件的名称作为第一个参数, 并将包含名称和变量值的数组作为第二个参数想要传递给视图:
// Register the index route$app->
get('/', function () use ($app) {// Use the PHP templating engine to render the PHP file// the path of the file would be originally:// ./project/phptemplates/index.html.phpreturn $app['templating']->
render('index.html.php', array("name" =>
"Carlos"));
})->
bind('homepage');
考虑到我们的index.html.php文件的内容是以下代码:
<
?phpecho "Welcome $name!";
?>
在索引路径访问应用程序后, 你会发现” Welcome Carlos!” 作为回应。请注意, Symfony的PHP模板引擎提供了许多功能, 如布局, 插槽和自动转义的实现, 因此请确保在此处正式阅读Symfony官方网站上有关该组件的更多信息。
编码愉快!
推荐阅读
- 如何使用Smarty循环显示字母和数字的列表
- 如何轻松将项目推到Twig中的数组
- PHP函数”func_get_arg”和”func_get_args”如何从PHP 5.x更改为PHP 7.x
- 如何使用短语法使用Twig检查变量是否存在以及是否为空
- 如何安全处理PHP错误(__toString()不得抛出异常)
- 每个Twig开发人员都应该能够回答的20个问题的答案和解释
- 如何在Symfony 1.4上使用Composer安装Packagist库
- 如何使Symfony Project 1.4.20与PHP 5.5或5.6完全兼容(不推荐使用(preg_replace()警告))
- 添加自定义android webview错误页面