Smarty小結提綱

Smarty:模板技術

實現功能:先後分離。

原理:主要經過Smarty核心類實現,調用display方法,將模板文件讀取,用正則進行替換,替換完保存到臨時文
件,將臨時文件加載到當前頁面。

配置文件(入口文件):對Smarty類進行實例化,設置文件的保存路徑

若是在頁面使用Smarty模板,須要將配置文件引入到當前頁面。

瀏覽器要訪問的頁面是後臺頁面(.php),最終在瀏覽器看到的頁面是模板頁面(.html或.tpl)

模板裏面的文件路徑:基於.php文件的相對路徑,若是不使用相對路徑能夠使用絕對路徑。

模板裏面顯示變量:

1.變量要寫在Smarty標記之間,變量名以$開頭

<{$test}>

2.支持全部類的數據,包括數組(關聯數組),對象

關聯數組在模板顯示的時候,除了能夠使用php語法以外,還支持點語法 <{$attr.name}>

模板裏面讀取配置文件

1.將配置文件加載到當前頁面
<{config_load file='test.conf'}>

2.讀取配置中的內容
<{#color#}>

3.若是配置文件中分了塊,怎麼讀某一塊的配置
<{config_load file='test.conf' section='塊名'}>

Smarty保留變量

$smarty.const 讀取常量  例如:CSS,JS,圖片的存放路口

變量調節器:

關鍵字:modifier

1.系統自帶的變量調節器:轉大寫 轉小寫 首字母大寫 截取字符串 拼接字符串
2.自定義變量調節器:

變量調節器存放目錄下新建文件:modifier.調節器名稱.php
在該文件裏面新建一個方法:function smarty_modifier_調節器名($str){}
$str參數表明調用該調節器的變量
最後該方法要有一個返回值

函數:

關鍵字:function普通函數,block塊函數

1.系統自帶的函數:if  foreach

<{if 條件}>
知足條件輸出內容
<{else}>
不知足條件輸出內容
<{/if}>

<{if 條件1}>
知足條件輸出內容
<{elseif 條件2}>
不知足條件1知足條件2執行
<{/if}>

比較的時候,有備用詞能夠使用

<{foreach $shuzu as $v}>

$v@index 從0開始的索引
$v@first 表明是第一個循環的
$v@last 表明是最後一個循環的

<{/foreach}>

2.自定義函數

找到存放函數插件的文件夾在裏面新建文件:function.函數名.php (block.函數名.php)
在該文件裏面新建一個方法:function smarty_function_函數名($args){}
function smarty_block_函數名($args,$nr,$smarty,$bs){}

參數$args:調用該函數傳入的屬性關聯參數
參數$nr:block塊之間所夾的內容
參數$smarty:對象
參數$bs:是不是第一次調用(開始標記裏面調用)

該方法最終有返回值

模板繼承:

extends  block

父模板:通常用來放網頁的頭和尾
須要預留必定的區域來讓子頁面修改替換
使用<{block name='neirong'}><{/block}>
通常來講,父模板裏面至少預留兩塊區域,其中一塊是在head裏面 另外一塊是在body裏面

子頁面:通常繼承父模板放該頁面實現的功能
<{extends file=''}>
完善替換父模板中預留的區域:
<{block name='neirong'}><{block}>




緩存:

作法:
1.定義一個緩存文件存放的路徑
2.判斷緩存文件是否存在或者是否過時
3.若是文件不存在或過時:
    開啓內存緩存ob_start();
    取內存中的內容ob_get_contents();
    將內容存放到緩存文件中file_put_contents();
    關閉內存緩存ob_flush();
4.若是文件存在或沒有過時:
    將緩存文件引入當前頁面include();















php

相關文章
相關標籤/搜索