本文概述
- 1.下载模板插件Symfony 1.4
- 2.启用模板引擎
- 3.如何使用模板引擎
在本文中, 我们将向你介绍如何在Symfony 1.4中正确安装和使用sfTemplateEngine。
1.下载模板插件Symfony 1.4 第一步, 可以从中获取模板类的源代码, 这是Symfony 1.4文档网站上的文章和教程。你将找到仅使用诸如sfTemplateLoaderFilesystem或sfTemplateEngine之类的示例, 但是它们假定你已经具有这些类。如果像我一样在此框架中担任新手, 则需要知道与sfTemplateEngine相关的类本身并未包含在项目中。你可以使用Git下载代码:
git clone https://github.com/fabpot-graveyard/templating.git
或者只是从Github的官方存储库中下载模板的源代码。在我们的例子中, 我们将代码下载到Symfony 1.4的根插件目录中名为templating的目录中:
文章图片
在我们的项目中, 它将具有以前的结构, 但是你可以根据需要更改它, 但是不要忘记在下一步中更改路径。
2.启用模板引擎 现在我们有了自动加载器文件, 其中包括Symfony 1.4模板引擎的类, 你可以使用require_once在项目配置文件(yourproject / config / ProjectConfiguration.class.php)中启用它:
<
?phprequire_once dirname(__FILE__) . '/../symfony-1.4.20/lib/autoload/sfCoreAutoload.class.php';
// 1. In this file register the autoloader of the template engine using the following line:// Note the path where we downloaded the plugin, yours can be different !require_once dirname(__FILE__) . '/../plugins/templating/lib/sfTemplateAutoloader.php';
// 2. And enable the sfTemplatesfTemplateAutoloader::register();
sfCoreAutoload::register();
class ProjectConfiguration extends sfProjectConfiguration {public function setup() {// Your original code}}
此步骤中的技巧是在项目配置中包括/templating/lib/sfTemplateAutoloader.php文件, 并从sfTemplateAutoloader类执行静态方法寄存器。
3.如何使用模板引擎 第一步, 要使用渲染引擎, 你将需要一个特定的路径来存储要渲染的模板。在本例中, 我们会将模板存储在Symfony 1.4的原始模板目录中, 该目录可从sf_app_template_dir常量(project / apps / frontend / templates)中检索。在此目录中, 我们将创建一个子目录, 即电子邮件, 该子目录将存储我们将使用模板引擎呈现的模板。例如, 我们将有一个模板, 即mail_message.php文件, 其中包含以下内容:
<
html>
<
head>
<
title>
Test sfTemplateEngine<
/title>
<
/head>
<
body>
<
h1>
<
?php echo $message . " ". $name;
?>
<
/h1>
<
/body>
<
/html>
【如何使用sfTemplateEngine在Symfony 1.4中渲染和获取纯PHP文件的输出(非部分输出)】要使用插件渲染此模板, 我们将通过项目中的简单控制器来完成此工作:
<
?phpclass indexActions extends sfActions {/*** Example action that will return a response to the browser.* * @param sfWebRequest $request* @return Response*/public function executeIndex(sfWebRequest $request) {// 1. Create the templates loader (provide the path to the templates as first argument)// note that the %name% wildcard will be replaced during the render method.$loader = new sfTemplateLoaderFilesystem(sfConfig::get('sf_app_template_dir').'/emails/%name%.php');
// 2. Create the Template Engine with the created loader$templateEngine = new sfTemplateEngine($loader, array('php' =>
new sfTemplateRendererPhp()));
// 3. Render some template (mail_message.php) sending the parameters in the second array$generatedHTML = $templateEngine->
render("mail_message", array('message' =>
'Hello', 'name'=>
'Carlos'));
// 4. In this example, we will return a response to the browser with the generated HTMLreturn $this->
renderText($generatedHTML);
}}
此操作将在浏览器中返回带有输出” Hello Carlos” 的视图作为响应。
编码愉快!
推荐阅读
- 如何在C语言中打印带有星号或自定义字符的空心方形/矩形/矩形图案
- Android Beacon库-继续记录周期扫描作业ID和即时扫描作业ID
- Bootstrap在create-react-app中不起作用
- 如何从android studio启动firefox焦点
- 如何检测NR网络是NSA还是SA类型(使用android API)
- xml文件中的文本不完整,导致新创建的Android Studio项目出现错误
- 为什么Android应用程序在退出带有后退按钮的应用程序时显示空白屏幕React Native Navigation()
- 通过公共IP连接到Android设备作为代理服务器
- 无法在AMD Ryzen(Android Studio)上使用HAXM