




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 HYPERLINK /jiaochangyun/article/details/7180758 TWIG 模板設計 快速入門手冊 中文 分類: 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 舉報 舉報 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)根據文章中H1到H6標簽自動生成文章目錄 (?) HYPERLINK /jiaochangyun/article/details/7180758 o 展開 +寫了好幾篇關于twig的東西。居然還沒寫個快速入門之類的?,F在就寫來源 HYPERLINK /doc/templates.html /doc/templates.html概要twig 的模板就是普通的文本文件,也不需要特別的擴展名,.html .htm .twig 都可以。模板內的 變量 和 表達式 會在運行的時候被
4、解析替換,標簽(tags)會來控制模板的邏輯下面是個最小型的模板,用來說明一些基礎的東西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)什么的,第二個是用來輸出變量和表達式的ide 支持很多ide 都對twig進行高亮支持。大伙自己找需要的吧。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如果傳遞給模板的是對象或者數組,你可以使用點 . 來輸出對象的屬性或者方法,或者數組的成員?;蛘吣憧梢允褂孟聵说姆绞?。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有一整套的流程來確認值是否存在。for.bar會進行以下操作。如果 foo是個
10、數組,就嘗試返回bar成員,如果不存在的話,往下繼續(xù)。如果foo是個對象,會嘗試返回bar屬性,如果不存在的話,往下繼續(xù)。會嘗試運行bar方法,如果不存在的話,往下繼續(xù)。會嘗試運行getBar方法,如果不存在的話,往下繼續(xù)。會嘗試運行isBar方法,如果不存在的話,返回nullforbar 就簡單很多了 for必須是個數組,嘗試返回bar成員,如果不就返回null全局變量TWIG定義了有一些全局變量_self 這個參看macro標簽_context這個就是當前的環(huán)境_charset: 當前的字符編碼變量賦值具體參見set標簽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、數的。過濾器也可以被多重使用。下面這例子就使用了兩個過濾器。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標簽,title表示每個單詞的首字母大寫。更多過濾器參見我博客過濾器也可以用在代碼塊中,參見 filter標簽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%函數 Function這個沒什么好說的,會寫程序的都知道,TWIG內置了一些函數,參考我的博客舉個例子 返回一個0到3的數組,就使用 range函數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結構。直接看例子吧,沒什么好說的。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%注釋# . # 包圍的內容會被注釋掉,可以是單行 也可以是多行。載入其他模板詳見include標簽(我博客內已經翻譯好哦),會返回經過渲染的內容到當前的模板里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%當前模板的變量也會傳遞到 被include的模板里,在那里面可以直接訪問你這個模板的變量。比如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變量的加入其他參數可以使被載入的模板只訪問部分變量,或者完全訪問不到。參考手冊模板繼承TWIG中最有用到功能就是模板繼承,他允許你建立一個“骨骼模板”,然后你用不同到block來覆蓋父模板中任意到部分。而且使用起來非常到簡單。我們先定義一個基本骨骼頁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個block塊,分別是 block head, block title, block content, block foote
22、r注意1、block是可以嵌套的。2、block可以設置默認值(中間包圍的內容),如果子模板里沒有覆蓋,那就直接顯示默認值。比如block footer ,大部分頁面你不需要修改(省力),但你需要到時候仍可以方便到修改(靈活)下面我看下 子模板應該怎么定義。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 % 必須是第一個標簽。其中 block footer就沒有定義,所以顯示父模板中設置的默認
24、值如果你需要增加一個block的內容,而不是全覆蓋,你可以使用 parent函數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標簽只能有一個,所以你只能有一個父模板,但有種變通到方法來達到重用多個模板到目的,具體參見手冊的use標簽HTML轉義主要是幫助轉義 尖括號等 , &, 可以有兩種辦法。一種是用標簽,另一種是使用過濾器。其實TWIG內部就是調用 php 的htmlspecialchars 函數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%因為是TWIG的操作符,如果你需要輸出兩個花括號,最簡單到辦法就是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 標簽和raw 過濾器,詳細參考手冊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宏宏有點類似于函數,常用于輸出一些html標簽。這里有個簡單示例,定義了一個輸出inp
29、ut標簽的宏。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%宏參數是沒有默認值的,但你可以通過default過濾器來實現。一般來說宏會定義在其他到頁面,然后通過import標簽來導入,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)你也可以只導入一個文件中部分宏,你還可以再重命名。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中導入了 input 和 textarea宏,并給input重命名為input_field。表達式TWIG允許你在任何地方使用表達式,他的規(guī)則和PHP幾乎一模一樣,就算你不會PHP 仍然會覺得很簡單。最簡單的
33、有字符串:“hello world” 或者 hello world 數字:42 或者 42.33數組:a,b,c哈希:a:av, b:bv 其中keys 可以不要引號 也可以是數字 還可以是一個表達式,比如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%運算符包括數字運算+ - * / %(求余數) /(整除) *(乘方)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邏輯運算 and or not比較運算 = = = !=包含運算 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測試運算 is 這個不用多說 直接看代碼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)%其他操作符. 建立一個指定開始到結束的數組,他是range函數的縮寫,具體參看手冊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%| 使用一個過濾器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 強制字符串連接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. 得到一個對象的屬性,比如以下是相等的。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你還可以在一個字符串內部插入一個表達式,通常這個表達式是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新解讀《HG-T 3075-2003膠粘劑產品包裝、標志、運輸和貯存的規(guī)定》新解讀
- 新解讀《CB-T 177 - 1999船用夾布膠管接頭》新解讀
- 土方路堤填挖方施工方案
- 地質超前預測及預報方法
- 2024年L-乳酸資金申請報告代可行性研究報告
- 商場家電售后管理制度
- 初中英語八年級下冊統(tǒng)編教案 uunit3
- 從軍精彩活動方案
- 倉儲質量活動方案
- 倉庫激勵活動方案
- 2025危險品水路運輸從業(yè)資格考試復習題(附答案)
- 門窗安裝人員合同協(xié)議
- 2025年湖北省新能源有限公司社會招聘24人筆試參考題庫附帶答案詳解
- 法律文化-形考作業(yè)3-國開(ZJ)-參考資料
- TCCEAS001-2022建設項目工程總承包計價規(guī)范
- 調查與研究能力試題及答案
- 2025租賃房屋合同范本下載
- 暖通入門基礎知識
- 2024年食品安全員考試真題解析試題及答案
- 2025年上海市初中語文名著閱讀《林海雪原》訓練含答案
- 夏季三防知識培訓課件
評論
0/150
提交評論