2018 1 13 Twig模板引擎快速入門

2021-10-05 07:27:13 字數 4405 閱讀 4108

layout

title

date

author

desc

in_head

post

twig模板引擎快速入門

2018-01-13 13:00:02 +0800

南丞

模板引擎(這裡特指用於web開發的模板引擎)是為了使使用者介面與業務資料(內容)分離而產生的,它可以生成特定格式的文件,用於**的模板引擎就會生成乙個標準的html文件。

前言模板引擎(這裡特指用於web開發的模板引擎)是為了使使用者介面與業務資料(內容)分離而產生的,它可以生成特定格式的文件,用於**的模板引擎就會生成乙個標準的html文件。

twig 的模板就是普通的文字檔案,也不需要特別的副檔名,.html .htm .twig 都可以。

}

**

}} }

} }編輯刪除

1.id 為php賦值變數,則模板中可以使用}

2.arr 為php中陣列,則模板中可以使用} 或者 }

3.obj 為php賦值物件,則模板中可以使用}也可以直接呼叫類中的方法,如 } 或當有引數傳遞時使用 }

注意:

當模版中使用 }時,php會做如下判斷來檢測對應變數的值:

檢測foo是否是陣列,並且bar是乙個有效的key

如果foo為物件,則檢測bar是否為有效的屬性

如果foo為物件,但bar不是乙個有效的屬性,則檢測bar是否為有效方法

如果foo為物件,但bar不是乙個有效的方法,則檢測getbar是否為有效方法

如果foo為物件,但getbar不是有效方法,則檢測isbar是否為有效方法

如果沒有,則返回null

1.

2.3. % }

###陣列遍歷

-- 按陣列value遍歷:

}

-- 按陣列key遍歷:

}

-- 按key,value遍歷

}: }

-- 如果 foo 非陣列,還可以使用else語句,如:

}: }

foo is not a array

###條件語句 -- 需要使用 or 和 and 代替 ||、&&

a = 1 or b = 2

-- 判斷變數是否定義

-- 是否為null

-- 是否為false

-- 控制結構

1.判斷語句

***yyy

zzz

2.迴圈語句

***

3.包含模板

4.模板繼承

5.定義**塊或覆蓋**塊

或  ***
###過濾器 過濾器用來修飾資料,各過濾器可以用豎線分隔進行鏈式呼叫,用括號傳遞引數,也可以將過濾器當成單獨的函式來用,形式如下:

待處理的資料

1.batch:將陣列按指定的個數分割成更小的陣列。如:

}

執行的結果:

[[1,2],[3,4],[5,'demo']]

2.date_modify: 修改時間, 常與date聯用。如:

}

顯示後3天的時間

3.default: 當所修飾的資料不存在或為空時,提供預設值。如

}
4.escape: 將字串安全地處理成合法的指定資料 預設的為html 5.first: 返回陣列的第乙個元素或字串的第乙個字元。如:

|first } }

結果為: 1

6.last: 返回陣列的最後乙個元素或字串的最後乙個字元.如:

|last } }

結果為: 3

7.replace: 替換乙個字串中的指定內容. 如

) } }

結果為dou love demo

###php函式的過濾器

abs:取絕對值

nl2be:將字串裡的\n替換

join: 將陣列的各個元素按指定分隔符組成字串

sort: 對陣列排序

trim: 去除字串首尾的指定字元 預設為空格

date: 格式化時間,可處理與strtotime相容的字串

reverse: 反轉乙個陣列或字串

slice: 擷取陣列或字串的一部分

keys: 將陣列的全部鍵名提取成乙個陣列,等同於array_keys

merge:合併兩陣列,近似於array_merge。如 }

length: 返回陣列元素的個數或字串的長度,等同於count和s†rlen的結合體

capitalize: 將字串的首字母大寫,等同於 ucfirst

title: 將字串中每個單詞的首字母大寫,等同於 ucwords

lower: 將字串所有字母全部變成小寫,等同於 strtolower

upper: 將字串所有字母全部變成大寫,等同於 strtoupper

split: 將字串分割成陣列,等同於urlencode

striptags: 去除字串中的html/php標記,等同於strip_tags

url_encode: 編碼連線字串,等同於urlencode

json_encode: 編碼json格式,等同於json_encode

###macro標籤 macro(巨集標籤)類似於其他語言中的函式,常用於填充html標籤,比如用來渲染]

macro與函式的不同之處在於:

引數的預設值是通過macro塊內部的 default過濾器來定義的。

引數總是可選的。

另外,就跟php函式一樣,macro內部是無法使用外部的變數的。但你可以傳遞乙個特殊變數_context作為引數來獲取整個內容。

macro可以被定義在任何的模板內,但在你使用之前需要使用 imported[html]

#}}

} }

如果你要定義乙個macro裡 包含另乙個macro,並且兩個macro在同乙個檔案裡,可以使用特殊變數_self

}

twig模板引擎

twig是乙個靈活 高效並且安全的php模板引擎。如果你使用過smarty django或者jinja這類基於文字的模板引擎的話,那麼你會覺得twig是很自然而然的事情。twig嚴格遵守了php的信念,同時增加了在模板環境中很有用的函式,這些做法使得twig不論是對設計師還是開發人員,都是非常友好的...

opencart 引入 TWIG 模板引擎

1.首先將 twig 包放入 system library 目錄。2.在 system startup.php 檔案最後新增引入語句。require once dir system library twig 1.12.3 lib twig autoloader.php 3.在 index.php 檔...

Twig模板引擎常用基礎用法總結

一 變數定義與使用 使用set定義變數,使用 使用變數。class content p 使用.獲取物件中的值。class content p class content p 二 twig 中的 if 判斷 如果為真 這裡寫內容p 如果a和b為真 這裡寫內容p 如果a或b為真 這裡寫內容p 變數是否定...