学习smarty收获记录

原创 2018-12-30 21:05:11 238
摘要:smarty的初始化配置/*smarty配置文件*/ require_once __DIR__.'/../vendor/autoload.php';//composer下载的smarty $smarty = new Smarty(); $smarty->setTemplateDir(__DIR__.'/../temp'

smarty的初始化配置

/*smarty配置文件*/
require_once __DIR__.'/../vendor/autoload.php';//composer下载的smarty

$smarty = new Smarty();

$smarty->setTemplateDir(__DIR__.'/../temp');//配置模板目录
$smarty->setCompileDir(__DIR__.'/../temp_c');//配置编译目录
$smarty->setConfigDir(__DIR__.'/../config');//配置配置文件目录
$smarty->setCacheDir(__DIR__.'/../cache');//配置缓存目录

$smarty->setLeftDelimiter('{');//配置模板变量左边解析符
$smarty->setRightDelimiter('}');//配置模板变量右边解析符

$smarty->setCaching(false);//是否开启缓存
{* 渲染的模板demo1.html *}
{* 模板解析数组 *}
第{$books.0.bookid},书名是《{$books.0.title}》,价格是{$books.0.price}<br>
第{$books.1.bookid},书名是《{$books.1.title}》,价格是{$books.1.price}<br>
{* 模板解析对象 *}
{$test->name},{$test->welcome()}<br>
{* 模板调用自定义函数,并传入变量作为参数 *}
{add($books.0.price,20)}<br>
{* 模板解析常量 *}
{$smarty.const.SITE_NAME}<br>
{* 显示系统变量 *}
{$smarty.post.user}<br>
{$smarty.get.page}<br>
{$smarty.session.passwd}<br>
{* 读取配置文件信息 *}
{config_load file='website.conf' section='db'}
{$smarty.config.website}<br>
{$smarty.config.host}


{assign var="grade" value="80"}

{if $grade>=80}
<p>优秀</p>
{elseif $grade>=70}
<p>普通</p>
{elseif $grade>=60}
<p>及格</p>
{else}
<p>补考</p>
{/if}

{for $i=1 to 10 step=2}
{$i}
{forelse}
<h3>条件错误</h3>
{/for}
<br>
{$i=1}
{while $i<=10}
{$i}
{$i=$i+2}
{/while}

{$phone=[
['华为','荣耀10','3999'],
['小米','小米8','2100']
]}
<ul>
{foreach $phone as $k=>$v}
<li>商品{$v.0},型号{$v.1},价格{$v.2}</li>
{foreachelse}
<h3>没有商品</h3>
{/foreach}
</ul>
<br>

{function name="welcome" site='php中文网'}
<p>欢迎您来{$site}学习php课程</p>
{/function}

{call name="welcome"}

smarty模板继承

  1. 新建layout.html文件

  2. 在布局文件中定义block区块

在渲染的模板中 使用{extends file='layout.html'}继承布局文件并实例化所有block区块

在实现的区块中如果要引用布局文件中区块内容, 则用{$smarty.block.parent}引用

批改老师:天蓬老师批改时间:2018-12-30 21:02:00
老师总结:Smarty中的模板继承很方便,类似于原生php中的文件包含, 其实ThinkPHP中的模板继承也它是一样的

发布手记

热门词条