版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
¶ statementincludesatemteandreturnstherenderedcontentofthatfileintothecurrentIncludedtemteshaveaccesstothevariablesoftheactiveIfyouareusingthefilesystemloader,thetemtesarelookedforinthepathsdefinedbyYoucanaddadditionalvariablesbypassingthemafter Youcandisableaccesstothecontextbyappending Whenincludingatemtecreatedbyanenduser,youshouldconsidersandboxingit.MoreinformationintheTwigforDeveloperschapterandinthesandboxtagation.的TwigforDevelopers的sandboxThetemtenamecanbeanyvalidTwigAndiftheexpressionevaluatesto object,TwigwilluseitNewinversion1.2:ThefeaturehasbeenaddedinTwigYoucanmarkanincludewithinwhichcaseTwigwillignorethestatementifthetemtetobeincludeddoesnotexist.Ithastobecedjustafterthetemtename.Heresomevalidexamples:你可以用ignoremissing标记一个include,这样Twig将忽略此模板不存在的情况。这个参数直接加到模板名后Newinversion1.2:ThepossibilitytopassanarrayoftemteshasbeenaddedinTwigYoucanalsoprovidealistoftemtesthatarecheckedforexistencebeforeinclusion.Thefirsttemtethatexistswillbeincluded:Ifisgiven,itwillfallbacktorenderingnothingifnoneofthetemtesexist,otherwiseitwillthrowanexception. ¶Twigsupportsputtingoftenusedcodeintomacros.Thesemacroscangointodifferenttemtesandgetimportedfromthere.Therearetwowaystoimporttemtes.Youcanimportthecompletetemteintoavariableorrequestspecificmacrosfromit.Imaginewehaveahelpermodulethatrendersforms 想象一下我们有一个渲染表单的协助器模块(叫forms.html):Theeasiestandmostflexibleisimportingthewholemoduleintoavariable.ThatwayyoucanaccesstheAlternativelyyoucanimportnamesfromthetemteintothecurrentToimportmacrosfromthecurrentfile,usethe variableforthe¶ tagcanbeusedtoextendatemtefromanotherLikePHP,Twigdoesnotsupportmultipleinheritance.Soyoucanonlyhaveoneextendstagcalledperrendering.However,Twigsupportshorizontalreuse.,Let'sdefineabasetem ,whichdefinesasimpleHTMLskeletonInthisexample,theblocktagsdefinefourblocksthatchildtemtescanfillAllthe tagdoesisto lthetemteenginethatachildtemtemayoverridethoseportionsoftheChild Achildtemtemightlooklike tagisthekeyhere.Itlsthetemteenginethatthistemte"extends"anothertemte.Whenthetemtesystemevaluatesthistemte,firstitlocatestheparent.Theextendstagshouldbethefirsttaginthetemte.Notethatsincethechildtemtedoesn'tdefinethe block,thevaluefromtheparenttemteisusedinstead.Youcan'tdefinemultiple tagswiththesamenameinthesametemte.Thislimitationexistsbecauseablocktagworksin"both"directions.Thatis,ablocktagdoesn'tjustprovideaholetofill-italsodefinesthecontentthatfillstheholeintheparent.Ifthereweretwo tagsinatemte,thattemte'sparentwouldn'tknowwhichoneoftheblocks'contenttouse.Ifyouwanttoprintablockmultipletimesyoucanhoweveruse 首先它定位父模板。extends应该模板里的顶一个。你不能在同一个模板里给多个block同一个名称。这个限制条件的存在是因为一个block可以“双向”工作。一个block不仅是提供一个洞去填充,它也是定义填充父模板的内容。如果一个模板里有两个类似名ParentIt'spossibletorenderthecontentsoftheparentblockbyusingtheparentfunction.Thisgivesbacktheresultsoftheparentblock:NamedBlockEnd-TwigallowsyoutoputthenameoftheblockaftertheendtagforbetterOfcourse,thenameafter wordmustmatchtheblockBlockNestingandBlockscanbenestedformorecomplexlayouts.Perdefault,blockshaveaccesstovariablesfromouter当然,endblock里的名称必须和blockname相符。BlockForblockswithfewcontent,it'spossibletouseashortcutsyntax.ThefollowingconstructsdotheDynamicTwigsupportsdynamicinheritancebyusingavariableasthebasetemIfthevariableevaluatesto object,TwigwilluseitastheparenttemNewinversion1.2:ThepossibilitytopassanarrayoftemteshasbeenaddedinTwigYoucanalsoprovidealistoftemtesthatarecheckedforexistence.Thefirsttemtethatexistswillbeusedasaparent:AsthetemtenamefortheparentcanbeanyvalidTwigexpression,it'spossibletomaketheinheritancemechanismconditional:Inthisexample,thetemtewillextendthe"minimum.html"layouttemteifthevariableevaluatesto ,and"base.html"otherwise.Howdoblockswork?Ablockprovidesawaytochangehowacertainpartofatemteisrenderedbutitdoesnotinterfereinanywaywiththelogicaroundit.Let'stakethefollowingexampletoillustratehowablockworksandmoreimportantly,howitdoesnotwork:在这个例子里,如果变量tandalone变量是true模板将扩展“minimum.html”扩展“bas.html”block提供法修改一个模板的确定部分怎样渲染,但它不涉及任何逻辑。让我们用下边的例子说明一个block112345678{#base.twig{%forpostinposts{%blockpost<h1>{{post.title<p>{{post.body{%endblock{%endforIfyourenderthistemte,theresultwouldbeexactlythesamewithorwithoutthe insidethe loopisjustawaytomakeitoverridablebyachildtemte:如果你渲染这个模板,结构将确切的会是同样有或者没有lock。在for循环里的block是一种让子模板覆盖的方法:1123456789{#child.twig{%extends"base.twig"{%blockpost<header>{{post.title<section>{{post.text{%endblockNow,whenrenderingthechildtemte,theloopisgoingtousetheblockdefinedinthechildtemteinsteadoftheonedefinedinthebaseone;theexecutedtemteisthenequivalenttothefollowingone:现在,当渲染子模板,循环会使用子模板定义的lock{%{%forpostinposts<header>{{post.title<section>{{post.text{%endforLet'stakeanotherexample:ablockincludedwithin 11234567{%ifpostsisempty{%blockhead{{parent()<metaname="robots"content="noindex,{%endblockhead{%endifContrarytowhatyoumightthink,thistemtedoesnotdefineablockconditionally;itjustmakesoverridablebyachildtemtetheoutputofwhatwillberenderedwhenthecondition Ifyouwanttheoutputtobedisyedconditionally,usethefollowing或许和你相反,这个模板没定义一个block条件,当条件是true时它仅仅由子模板覆盖将 {%blockhead{{parent()4423{%ifpostsisempty<metaname="robots"content="noindex,{%endif{%endblockhead567¶Newinversion1.1:HorizontalreusewasaddedinTwigHorizontalreuseisanadvancedTwigfeaturethatishardlyeverneededintemtes.Itismainlyusedbyprojectsthatneedtomaketemteblocksreusablewithoutusinginheritance.TemteinheritanceisoneofthemostpowerfulTwig'sfeaturebutitislimitedtosingleinheritance;atemtecanonlyextendoneothertemte.Thislimitationmakestemteinheritancesimpletounderstandandeasytodebug:Horizontalreuseisawaytoachievethesamegoalasmultipleinheritance,butwithouttheassociated lsTwigtoimporttheblocksdefinedin intothecurrenttemte(it'slikemacros,butforblocks):Inthisexample,the statementimportsthe blockintothemaintemte.Thecodeismostlyequivalenttothefollowingone(theimportedblocksarenotoutputtedautomatically): tagonlyimportsatemteifitdoesnotextendanothertemte,ifitdoesnotdefinemacros,andifthebodyisempty.Butitcanuseothertemtes. statementsareresolvedindependentlyofthecon
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江杭甬复线宁波一期高速公路有限公司招聘4人笔试历年参考题库附带答案详解
- 2025中国电力建设集团河北工程有限公司招聘70人笔试历年典型考点题库附带答案详解2套试卷
- 2025年及未来5年中国条斑紫菜市场运行态势及行业发展前景预测报告
- 2025年江西南昌轨道交通集团人员招聘笔试及笔试历年参考题库附带答案详解
- 2025山东双瑞风电厂(国企)招聘笔试历年参考题库附带答案详解
- 2025天津开元捷能科技有限公司招聘3人笔试历年参考题库附带答案详解
- 运动神经元病细胞模型构建-洞察及研究
- 新能源汽车充电站施工组织方案
- 煤矿电缆销售合同范本
- 跨境电商客户开发流程指南
- 2025年医院反恐应急预案演练脚本
- 三黑和土地薛法根课件
- 2026届湖北高考物理一轮复习力学综合测试(一)(教师版)
- 沧州银行笔试试题及答案
- 2025年中国电信考试真题及答案
- MichaelPage-2025印度尼西亚薪酬指南
- 收益管理课件
- 空压机维护保养合同范本
- 气管插管接呼吸机临床应用规范
- 十五五学校发展规划中期自评报告
- 2026版步步高大一轮高考数学复习110练第八章 §8.4 直线与圆、圆与圆的位置关系含答案
评论
0/150
提交评论