TWIG模板設(shè)計(jì)快速入門手冊中文_第1頁
TWIG模板設(shè)計(jì)快速入門手冊中文_第2頁
TWIG模板設(shè)計(jì)快速入門手冊中文_第3頁
TWIG模板設(shè)計(jì)快速入門手冊中文_第4頁
TWIG模板設(shè)計(jì)快速入門手冊中文_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 HYPERLINK /jiaochangyun/article/details/7180758 TWIG 模板設(shè)計(jì) 快速入門手冊 中文 分類: HYPERLINK /jiaochangyun/article/category/956880 php 2012-01-09 09:55 3872人閱讀 HYPERLINK /jiaochangyun/article/details/7180758 l comments 評論(2) HYPERLINK javascript:void(0); o 收藏 收藏 HYPERLINK /jiaochangyun/article/details/7180758

2、 l report o 舉報(bào) 舉報(bào) HYPERLINK /tag/input t _blank input HYPERLINK /tag/include t _blank include HYPERLINK /tag/whitespace t _blank whitespace HYPERLINK /tag/stylesheet t _blank stylesheet HYPERLINK /tag/html t _blank html HYPERLINK /tag/output t _blank output目錄 HYPERLINK /jiaochangyun/article/details/

3、7180758 o 系統(tǒng)根據(jù)文章中H1到H6標(biāo)簽自動生成文章目錄 (?) HYPERLINK /jiaochangyun/article/details/7180758 o 展開 +寫了好幾篇關(guān)于twig的東西。居然還沒寫個(gè)快速入門之類的。現(xiàn)在就寫來源 HYPERLINK /doc/templates.html /doc/templates.html概要twig 的模板就是普通的文本文件,也不需要特別的擴(kuò)展名,.html .htm .twig 都可以。模板內(nèi)的 變量 和 表達(dá)式 會在運(yùn)行的時(shí)候被

4、解析替換,標(biāo)簽(tags)會來控制模板的邏輯下面是個(gè)最小型的模板,用來說明一些基礎(chǔ)的東西html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?MyWe

5、bpage%foriteminnavigation%item.caption%endfor%MyWebpagea_variable里面包含兩種符號 % . % 和 . 第一種用來控制的比如for循環(huán)什么的,第二個(gè)是用來輸出變量和表達(dá)式的ide 支持很多ide 都對twig進(jìn)行高亮支持。大伙自己找需要的吧。Textmatevia the HYPERLINK https:/githu/Anomareh/PHP-Twig.tmbundle Twig bundleVimvia the HYPERLINK /2/documentation/integration

6、 Jinja syntax pluginNetbeansvia the HYPERLINK http:/plugibe/plugin/37069/php-twig Twig syntax pluginPhpStorm(native as of 2.1)Eclipsevia the HYPERLINK https:/githu/pulse00/Twig-Eclipse-Plugin Twig pluginSublime Textvia the HYPERLINK https:/githu/Anomareh/PHP-Twig.tmbundle Twig bundleGtkSourceViewvia

7、 the HYPERLINK https:/githu/gabrielcorpse/gedit-twig-template-language Twig language definition(used by gedit and other projects)CodaandSubEthaEditvia the HYPERLINK https:/githu/bobthecow/Twig-HTML.mode Twig syntax mode變量程序會傳遞給模板若干變量,你需要在模板里輸出他們。例如輸出 $hellohtml HYPERLINK /jiaochangyun/article/detail

8、s/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?hello如果傳遞給模板的是對象或者數(shù)組,你可以使用點(diǎn) . 來輸出對象的屬性或者方法,或者數(shù)組的成員。或者你可以使用下標(biāo)的方式。html HYPERLINK /jiaochangyu

9、n/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?foo.barfoobar如果你訪問的值不存在就會返回null。TWIG有一整套的流程來確認(rèn)值是否存在。for.bar會進(jìn)行以下操作。如果 foo是個(gè)

10、數(shù)組,就嘗試返回bar成員,如果不存在的話,往下繼續(xù)。如果foo是個(gè)對象,會嘗試返回bar屬性,如果不存在的話,往下繼續(xù)。會嘗試運(yùn)行bar方法,如果不存在的話,往下繼續(xù)。會嘗試運(yùn)行g(shù)etBar方法,如果不存在的話,往下繼續(xù)。會嘗試運(yùn)行isBar方法,如果不存在的話,返回nullforbar 就簡單很多了 for必須是個(gè)數(shù)組,嘗試返回bar成員,如果不就返回null全局變量TWIG定義了有一些全局變量_self 這個(gè)參看macro標(biāo)簽_context這個(gè)就是當(dāng)前的環(huán)境_charset: 當(dāng)前的字符編碼變量賦值具體參見set標(biāo)簽html HYPERLINK /jiaochangyun/articl

11、e/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%setfoo=foo%setfoo=1,2%setfoo=foo:bar%過濾器 Firters變量可以被過濾器修飾。過濾器和變量用(|)分割開。過濾器也是可以有參

12、數(shù)的。過濾器也可以被多重使用。下面這例子就使用了兩個(gè)過濾器。html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?name|striptags|tit

13、lestriptas表示去除html標(biāo)簽,title表示每個(gè)單詞的首字母大寫。更多過濾器參見我博客過濾器也可以用在代碼塊中,參見 filter標(biāo)簽html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/arti

14、cle/details/7180758 o ? ?%filterupper%Thistextbecomesuppercase%endfilter%函數(shù) Function這個(gè)沒什么好說的,會寫程序的都知道,TWIG內(nèi)置了一些函數(shù),參考我的博客舉個(gè)例子 返回一個(gè)0到3的數(shù)組,就使用 range函數(shù)html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaoc

15、hangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%foriinrange(0,3)%i,%endfor%流程控制支持for循環(huán) 和 if/elseif/else結(jié)構(gòu)。直接看例子吧,沒什么好說的。html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o c

16、opy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?Members%foruserinusers%user.username|e%endfor%html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o cop

17、y copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%ifusers|length0%foruserinusers%user.username|e%endfor%endif%注釋# . # 包圍的內(nèi)容會被注釋掉,可以是單行 也可以是多行。載入其他模板詳見include標(biāo)簽(我博客內(nèi)已經(jīng)翻譯好哦),會返回經(jīng)過渲染的內(nèi)容到當(dāng)前的模板里html HYPERLINK /jiaochangyun/article/d

18、etails/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%includesidebar.html%當(dāng)前模板的變量也會傳遞到 被include的模板里,在那里面可以直接訪問你這個(gè)模板的變量。比如html HYPERLINK /ji

19、aochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%forboxinboxes%includerender_box.html%endfor%在 render_box.html 是可以

20、訪問 box變量的加入其他參數(shù)可以使被載入的模板只訪問部分變量,或者完全訪問不到。參考手冊模板繼承TWIG中最有用到功能就是模板繼承,他允許你建立一個(gè)“骨骼模板”,然后你用不同到block來覆蓋父模板中任意到部分。而且使用起來非常到簡單。我們先定義一個(gè)基本骨骼頁base.html 他包含許多block塊,這些都可以被子模板覆蓋。html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy cop

21、y HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%blockhead%blocktitle%endblock%-MyWebpage%endblock%blockcontent%endblock%blockfooter%Copyright2011byyou.%endblock%我們定義了4個(gè)block塊,分別是 block head, block title, block content, block foote

22、r注意1、block是可以嵌套的。2、block可以設(shè)置默認(rèn)值(中間包圍的內(nèi)容),如果子模板里沒有覆蓋,那就直接顯示默認(rèn)值。比如block footer ,大部分頁面你不需要修改(省力),但你需要到時(shí)候仍可以方便到修改(靈活)下面我看下 子模板應(yīng)該怎么定義。html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/de

23、tails/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%extendsbase.html%blocktitle%Index%endblock%blockhead%parent().importantcolor:#336699;%endblock%blockcontent%IndexWelcomeonmyawesomehomepage.%endblock%注意 % extends base.html % 必須是第一個(gè)標(biāo)簽。其中 block footer就沒有定義,所以顯示父模板中設(shè)置的默認(rèn)

24、值如果你需要增加一個(gè)block的內(nèi)容,而不是全覆蓋,你可以使用 parent函數(shù)html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%blocksi

25、debar%TableOfContents.parent()%endblock%extends標(biāo)簽只能有一個(gè),所以你只能有一個(gè)父模板,但有種變通到方法來達(dá)到重用多個(gè)模板到目的,具體參見手冊的use標(biāo)簽HTML轉(zhuǎn)義主要是幫助轉(zhuǎn)義 尖括號等 , &, 可以有兩種辦法。一種是用標(biāo)簽,另一種是使用過濾器。其實(shí)TWIG內(nèi)部就是調(diào)用 php 的htmlspecialchars 函數(shù)html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/detai

26、ls/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?user.username|euser.username|e(js)%autoescapetrue%Everythingwillbeautomaticallyescapedinthisblock%endautoescape%因?yàn)槭荰WIG的操作符,如果你需要輸出兩個(gè)花括號,最簡單到辦法就是html HYPERLINK /j

27、iaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?還可以使用 raw 標(biāo)簽和raw 過濾器,詳細(xì)參考手冊html HYPERLINK /jiaochangyun/article/d

28、etails/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%raw%foriteminseq%item%endfor%endraw%macros宏宏有點(diǎn)類似于函數(shù),常用于輸出一些html標(biāo)簽。這里有個(gè)簡單示例,定義了一個(gè)輸出inp

29、ut標(biāo)簽的宏。html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%macroinput(name,value,type,size)%endmacr

30、o%宏參數(shù)是沒有默認(rèn)值的,但你可以通過default過濾器來實(shí)現(xiàn)。一般來說宏會定義在其他到頁面,然后通過import標(biāo)簽來導(dǎo)入,html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/detai

31、ls/7180758 o ? ?%importforms.htmlasforms%forms.input(username)你也可以只導(dǎo)入一個(gè)文件中部分宏,你還可以再重命名。html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jia

32、ochangyun/article/details/7180758 o ? ?%fromforms.htmlimportinputasinput_field,textarea%Usernameinput_field(username)Passwordinput_field(password,type=password)textarea(comment)上面的代碼表示 從forms.html中導(dǎo)入了 input 和 textarea宏,并給input重命名為input_field。表達(dá)式TWIG允許你在任何地方使用表達(dá)式,他的規(guī)則和PHP幾乎一模一樣,就算你不會PHP 仍然會覺得很簡單。最簡單的

33、有字符串:“hello world” 或者 hello world 數(shù)字:42 或者 42.33數(shù)組:a,b,c哈希:a:av, b:bv 其中keys 可以不要引號 也可以是數(shù)字 還可以是一個(gè)表達(dá)式,比如a:av, b:bv 1:1v, 2:2v 1+2:12v邏輯: true 或者 false最后還有null你可以嵌套定義html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy

34、 HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%setfoo=1,foo:bar%運(yùn)算符包括數(shù)字運(yùn)算+ - * / %(求余數(shù)) /(整除) *(乘方)html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy

35、 copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?2*3=62*3=8邏輯運(yùn)算 and or not比較運(yùn)算 = = = !=包含運(yùn)算 in 以下的代碼會返回 truehtml HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/718

36、0758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?1in1,2,3cdinabcde測試運(yùn)算 is 這個(gè)不用多說 直接看代碼html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy

37、 copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?nameisodd%ifloop.indexisdivisibleby(3)%ifloop.indexisnotdivisibleby(3)%#isequivalentto#%ifnot(loop.indexisdivisibleby(3)%其他操作符. 建立一個(gè)指定開始到結(jié)束的數(shù)組,他是range函數(shù)的縮寫,具體參看手冊html HYPERLINK /j

38、iaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?%foriin0.3%i,%endfor%| 使用一個(gè)過濾器html HYPERLINK /jiaochangyun/articl

39、e/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?#outputwillbeHELLO#hello|upper 強(qiáng)制字符串連接html HYPERLINK /jiaochangyun/article/details/

40、7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?Helloname!?: 三元操作符html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plai

41、n HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?foo?yes:no. 得到一個(gè)對象的屬性,比如以下是相等的。html HYPERLINK /jiaochangyun/article/details/7180758 o view plain view plain HYPERLINK /jiaochangyun/article/details/7180758 o copy copy HYPERLINK /jiaochangyun/article/details/7180758 o print print HYPERLINK /jiaochangyun/article/details/7180758 o ? ?foo.barfoobar你還可以在一個(gè)字符串內(nèi)部插入一個(gè)表達(dá)式,通常這個(gè)表達(dá)式是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論