天天看點

kphp開源架構學習篇之kphp架構整合smarty的全面講解!

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