kphp2.0版本采用了MVC的模式,而且模闆引擎選擇了smarty,之是以選擇smarty是因為smarty緩存技術不但能夠提升通路速度,而且還可以通過緩存技術非常友善的生成靜态Html頁面,這對應網站的推廣是非常有必要的,今天就給大家簡單介紹一下kphp架構中整合smarty的一些方法。
kphp2.0中的View類,繼承了Smarty方法,用add($name,$value)方法代替assign方法和show($path,$cache_id='',$compile_id='')代替了display方法。而在控制端可以通過add()方法和show()方法像模闆中傳遞變量和方法。而kphp架構為了不改變開發者的習慣,在模闆端還是采用了smarty固有的文法,而沒有進行更改。
如果你是php初學者沒有接觸過smarty也沒有關系,在這了我會給大家簡單介紹一下,想一下當我們把php中變量傳遞模闆層,需要做的隻是指派、判讀、周遊資料,下面我詳細給大家介紹一下:
1.在控制層中傳值:
$kphp = "我是kphp開源架構";
$kphp_array =array(
'kphp'=array('kphp團隊','kphp愛國者','kphp架構'),
'php'=>array('php學習','php架構'),
'mysql'=>'我是mysql'
);
$view = new View();
add("kphp",$kphp);
add("krow",$kphp_array);
show("index.html");
2.在模闆中引用:
第一、簡單變量指派
模闆檔案中需要替換的值用大括号{}括起來,值的前面還要加$号,比如:{$kphp}
這裡可以是數組,比如:{$krow.mysql}
在模闆頁面中:取得php傳來的值,用{$變量名}。
第二、引用模闆檔案
站中的網頁一般header和footer是可以共用的,是以隻要在每個模闆頁中引用它們就可以了。
如:
{include file="header.html"}
内容區
{include file="footer.html"}
第三、條件判斷
結構:
{if 條件}
……
{elseif 條件}
…..
{else}
….
{/if}
{if $kphp==“kphp”}
架構:{$kphp}
{/if}
{if $kphp!=“kphp”}
架構:{$kphp}
{/if}
{if $kphp==“php"}
這個是php
{elseif $kphp==“kphp"}
這個是php
{else}
這個既不是php也不是kphp
{/if}
第四、對數組的周遊(循環語句)
當我們php傳遞過來數組時候需要進行周遊輸出,周遊可以用foreach和section
foreach方式:
對于二維數組:
{foreach item=row key=rowid from=$all_cate}
<li><a href="{$row.url}" target="_blank" rel="external nofollow" target="_blank" title="{$row.class_name}" >{$row.class_name}</a></li>
{/foreach}
section 方式:
對于二維數組:
{section name=row loop=$list}
{$list[row].name}<br>
{/section}
其中,$list為php頁面傳來的數組。
以上是kphp2.0整合smarty模闆的基本使用方法,是不是很簡單,即使你沒有學過smarty隻要你利用kphp2.0架構,按照給定的類進行編輯就可以掌握smarty的初步應用,後期也會給大家介紹如何用kphp2.0的模闆類生産靜态頁。
原文轉自kphp開源架構: http://www.kphp.org/?faq-show-49.html