国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php模板

2024-05-04 21:47:25
字體:
來源:轉載
供稿:網友

模板其實就是php和html的分離,有人也說mvc啥的,php處理程序,把動態內容保存到變量里面,然后通過模板輸出這些變量的內容,這就是模板.你可以

$rows = $db->getAll($sql);require "tpl.html";

來輸出,你也可以:

$tpl->setVar("rows",$rows);$tpl->display("tpl.html");

來輸出,總之他是輸出變量里面的內容,我感覺模板應該有下面的特征:

1,就是html頁面、2,即見即得、3,書寫簡化,容易擴展,這一點非常重要,其實就是換個簡單的書寫形式.

smarty自定義函數還有什么的,還有其他模板也有類似功能,比如{article.addtime:date:Y-m-d} {article.content:nl2br:},如果能做到上面的三點,我感覺就是一個很好的模板,很多人說直接用php來做html模板,我比較反對這種形式

1,php代碼看不到、2,書寫太繁,太麻煩。

如果看起來麻煩,書寫也麻煩,我拿模板來干什么,做花瓶?discuz的模板就是一個不錯的模板,可惜2,3兩點他做得不太好,我自己也做個模板。到現在也一直用,差什么就加什么,對我來說他就是一個好的模板。

1,就是html頁面

2,即見即得,你看到的什么樣子,輸出就是什么樣子。不像很多人去搞個href="$cssPath/css.css"這樣去搞個,div+css的頁面這種模板美工改起來肯定沒少吃苦。

3,書寫簡化:其實就是函數的簡寫。就如上面的,比如發布時間需要格式化可以任意改,比如內容要吧回車變成換行,比如要把內容弄到一個編輯器。{content:htmleditor:},比如。。。。,他就是一個簡寫,這樣做起來什么事情都事倍功半。還記得那個頁面的調用吧?比如最新產品顯示8個,最新。。。顯示10個。(很多所謂的cms采用標簽)

其實說白了就是一個foreach,傳入參數返回一個二維數組,于是就有了

  1. <!--{loop NewProduct:sortid=1;limit=8 $product}--> 
  2. {product.productname:cut:20} ....  
  3. <!---{/loop}--> 

有一天客戶要求變了,要調用精華產品,于是

<!--{loop NewProduct:sortid=1;limit=8 $product}--> 變成了:

<!--{loop NewProduct:sortid=1;digest=1;limit=8 $product}-->

我感覺這就是簡化,美工只要明白,這里應該是循環就行了,到現在和我合作的美工還沒有一個不會改我的模板的,雖然他不懂程序。

4,模板吧,你要追求速度,緩存吧,緩存真的有用嗎?俺為啥要緩存?很多人說設置下緩存時間,html緩存就行了,這個能叫緩存么?如果是動態網頁,上面寫的歡迎你,{username},你還能把他緩存了?你說不緩存吧,下面的調用又太多,咋辦捏?這時候就要用到局部緩存,什么叫局部緩存,就是緩存頁面的也部分,其實說白了也就是那些調用。

<!--{loop NewProduct:sortid=1;limit=8 $product}-->

這種地方的調用,如果首頁顯示20個分類的最新5篇文章,那打開頁面,光這些文章調用就要20次查詢,局部緩存吧:

<!--{#loop NewProduct:sortid=1;limit=8 $product}-->

loop我加一個#就讓他緩存了,我加20個#,首頁的調用就沒數據庫查詢了,好像有的地方必須每次都調用最新的,咋辦呢,把#去掉吧。

模板就是模板,雖然只負責顯示,不一定就不重要,如果讓模板變得簡單倒是我們應該考慮的問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汝南县| 遂平县| 镇远县| 五华县| 蚌埠市| 长沙县| 仙游县| 邮箱| 岳阳市| 平遥县| 乐至县| 信宜市| 成都市| 平江县| 永仁县| 廊坊市| 泰兴市| 中江县| 买车| 西宁市| 明溪县| 永靖县| 龙胜| 天峨县| 岳西县| 兰州市| 镇平县| 琼海市| 叙永县| 阳西县| 美姑县| 宁波市| 旬阳县| 英山县| 松桃| 福安市| 新密市| 南丹县| 台东市| 土默特右旗| 潼关县|