smarty模板在PHP中用于將原本與HTML代碼混雜在一起的PHP代碼邏輯分離;smarty是一種PHP寫(xiě)出來(lái)的模板引擎,smarty分離了邏輯代碼和外在的內(nèi)容,提供了一種易于管理和使用的方法實(shí)現(xiàn)html與PHP代碼邏輯分離的效果,導(dǎo)入語(yǔ)法為“require_once('…Smarty.php')”。
本文操作環(huán)境:Windows10系統(tǒng)、PHP8.1版、Dell G3電腦
smarty在php中怎么用
Smarty是一個(gè)使用PHP寫(xiě)出來(lái)的模板引擎,是業(yè)界最著名的PHP模板引擎之一。它分離了邏輯代碼和外在的內(nèi)容,提供了一種易于管理和使用的方法,用來(lái)將原本與HTML代碼混雜在一起PHP代碼邏輯分離。
簡(jiǎn)單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內(nèi)容不會(huì)影響到前端人員的頁(yè)面設(shè)計(jì),前端人員重新修改頁(yè)面不會(huì)影響到程序的程序邏輯,這在多人合作的項(xiàng)目中顯的尤為重要。
優(yōu)點(diǎn)
1、速度:采用Smarty編寫(xiě)的程序可以獲得最大速度的提高,這一點(diǎn)是相對(duì)于其它的模板引擎技術(shù)而言的。
2、編譯型:采用Smarty編寫(xiě)的程序在運(yùn)行時(shí)要編譯成一個(gè)非模板技術(shù)的PHP文件,這個(gè)文件采用了PHP與HTML混合的方式,在下一次訪問(wèn)模板時(shí)將WEB請(qǐng)求直接轉(zhuǎn)換到這個(gè)文件中,而不再進(jìn)行模板重新編譯(在源程序沒(méi)有改動(dòng)的情況下)
3、緩存技術(shù):Smarty選用的一種緩存技術(shù),它可以將用戶最終看到的HTML文件緩存成一個(gè)靜態(tài)的HTML頁(yè),當(dāng)設(shè)定Smarty的cache屬性為true時(shí),在Smarty設(shè)定的cachetime期內(nèi)將用戶的WEB請(qǐng)求直接轉(zhuǎn)換到這個(gè)靜態(tài)的HTML文件中來(lái),這相當(dāng)于調(diào)用一個(gè)靜態(tài)的HTML文件。
4、插件技術(shù):Smarty可以自定義插件。插件實(shí)際就是一些自定義的函數(shù)。
5、模板中可以使用if/elseif/else/endif。在模板文件使用判斷語(yǔ)句可以非常方便的對(duì)模板進(jìn)行格式重排。
smarty安裝
composer下載smarty
composer require smarty/smarty
導(dǎo)入smarty,并創(chuàng)建smarty對(duì)象
//引入Smarty.class.php require_once('../vendor/smarty/smarty/libs/Smarty.class.php'); $smarty = new Smarty();
smarty基礎(chǔ)目錄配置
$smarty->setTemplateDir('./templates/'); $smarty->setCompileDir('./templates_c/'); $smarty->setConfigDir('./configs/'); $smarty->setCacheDir('./cache/');
smarty分配變量
$name = 'smarty'; $smarty->assign('name',$name);
tpl模板使用變量
{$name} 、
smarty 調(diào)用模板
$smarty->display('index.tpl');
推薦學(xué)習(xí):《PHP視頻教程》