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