国产探花免费观看_亚洲丰满少妇自慰呻吟_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個#,首頁的調用就沒數據庫查詢了,好像有的地方必須每次都調用最新的,咋辦呢,把#去掉吧。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中方县| 福州市| 璧山县| 布拖县| 涿州市| 滦平县| 徐州市| 鹤山市| 读书| 栖霞市| 锦州市| 雷州市| 蒙山县| 卓尼县| 临猗县| 邵武市| 高安市| 安溪县| 葫芦岛市| 屏山县| 双牌县| 通州市| 布尔津县| 玛沁县| 永定县| 永川市| 清丰县| 安吉县| 泌阳县| 井陉县| 宜阳县| 昌都县| 南投市| 定边县| 津南区| 阿瓦提县| 普兰县| 海兴县| 垦利县| 惠来县| 平度市|