模板
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
模板
当PHP创建20年前,开发商如何如何好,喜欢它的简单混合HTML和动态代码。但随着时间的推移,语言——像其他模板嫩枝——创建模板更好。
最佳实践
使用树枝模板格式为您的模板。
一般来说,PHP模板比树枝模板更详细,因为他们缺乏原生支持大量的现代功能所需的模板,如继承、自动转义和过滤器和函数的命名参数。
嫩枝是默认模板格式在Symfony和最大的社区支持所有non-PHP模板引擎(它用ob娱乐下载于高调Drupal 8)等项目。欧宝体育平台怎么样
此外,树枝是唯一在Symfony 3.0模板格式提供担保支持。ob娱乐下载事实上,PHP可以从官方支持模板引擎。
模板的位置
最佳实践
存储所有应用程序的模板应用程序/资源/视图/
目录中。
传统上,Symfony开发者存ob娱乐下载储应用程序的模板资源/视图/
每个包的目录。然后他们用树枝把他们(如名称空间路径@AcmeDemo /违约/ index.html.twig
)。
但对于您的应用程序中使用的模板,更方便存储他们应用程序/资源/视图/
目录中。首先,这大大简化了他们的逻辑名称:
模板存储在包 | 模板存储在app / |
---|---|
@AcmeDemo / index.html.twig |
index.html.twig |
@AcmeDemo /违约/ index.html.twig |
默认的/ index.html.twig |
@AcmeDemo / /子目录/ index.html.twig违约 |
默认的/子目录/ index.html.twig |
另一个优势是,集中你的模板简化了你的设计师的作品。他们不需要寻找模板很多目录分散在很多包。
最佳实践
使用小写的snake_case目录和模板的名称。
最佳实践
使用下划线前缀部分模板的模板名称。
你经常想重用模板代码使用包括
函数来避免冗余代码。在文件系统应该确定这些泛音容易前缀泛音和任何其他没有身体或HTML模板扩展
标签与一个下划线。
树枝的扩展
最佳实践
定义你的树枝扩展AppBundle /理解/
使用目录和配置它们应用程序/配置/ services.yml
文件。
我们的应用程序需要一个定制的md2html
树枝过滤器,这样我们可以将每个帖子的减价内容转换为HTML。
要做到这一点,首先,安装好Parsedown减价解析器作为一个新项目的依赖关系:
1
美元作曲家需要erusev / parsedown
然后,创建一个新的减价
服务将使用后的树枝扩展。服务定义只需要类的路径:
1 2 3 4 5
# app / config / services.yml服务:#……app.markdown:类:AppBundle \跑龙套\减价
和减价
类只需要定义一个方法将减记的内容转换成HTML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
名称空间AppBundle\跑龙套;类减价{私人美元解析器;公共函数__construct(){美元这- >解析器=新\ Parsedown ();}公共函数toHtml(美元文本){返回美元这- >解析器- >文本(美元文本);}}
接下来,创建一个新的分支扩展和定义一个新的过滤器md2html
使用树枝\ TwigFilter
类。注入新定义减价
服务在树枝的构造函数的扩展:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36
名称空间AppBundle\嫩枝;使用AppBundle\跑龙套\减价;使用嫩枝\扩展\AbstractExtension;使用嫩枝\TwigFilter;类AppExtension扩展AbstractExtension{私人美元解析器;公共函数__construct(减价美元解析器){美元这- >解析器=美元解析器;}公共函数getFilters(){返回数组(新TwigFilter (“md2html”,数组(美元这,“markdownToHtml”),数组(“is_safe”= >数组(“html”),“pre_escape”= >“html”)));}公共函数markdownToHtml(美元内容){返回美元这- >解析器- >toHtml (美元内容);}公共函数getName(){返回“app_extension”;}}
最后定义一个新的服务,使这个树枝扩展的应用程序(服务名称是无关紧要的,因为你不能在自己的代码中使用):
1 2 3 4 5 6 7 8
# app / config / services.yml服务:app.twig.app_extension:类:AppBundle \树枝\ AppExtension参数:(“@app.markdown”)公众:假标签:- - - - - -{名称:twig.extension}
下一个:形式