模板
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.0,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
模板
当PHP在20年前被创建时,开发人员喜欢它的简单性以及它将HTML和动态代码很好地混合在一起。但随着时间的推移,其他模板语言也一样嫩枝-创建是为了使模板更好。
最佳实践
使用树枝模板格式的模板。
一般来说,PHP模板比Twig模板更冗长,因为它们缺乏对模板所需的许多现代特性的原生支持,比如继承、自动转义和过滤器和函数的命名参数。
Twig是Symfony中的默认模板格式,在所有非php模板引擎中拥有最大的社区支欧宝娱乐app下载地址持(它被用于Drupal 8等高调的项目中)。欧宝下载链接
模板的位置
最佳实践
将应用程序模板存储在模板/
目录,位于项目的根目录。
将模板集中在一个位置可以简化设计人员的工作。此外,使用这个目录简化了引用模板时使用的符号(例如:$ this - >渲染(admin / post / show.html.twig)
而不是$ this - >渲染(“@SomeTwigNamespace / Admin /文章/ show.html.twig”)
).
最佳实践
目录名和模板名使用小写的snake_case。
这个建议与Twig的最佳实践相一致,其中变量和模板名称也使用小写的snake_case(例如。user_profile
而不是userProfile
而且edit_form.html.twig
而不是EditForm.html.twig
).
最佳实践
模板名称中的部分模板使用带前缀的下划线。
方法重用模板代码包括
函数避免冗余代码。为了在文件系统中容易地确定这些部分,你应该为这些部分加上前缀,而任何其他模板都没有HTML正文或扩展
标记一个下划线。
树枝的扩展
最佳实践
中定义您的Twig扩展src /理解/
目录中。您的应用程序将自动检测并配置它们。
我们的应用程序需要自定义md2html
树枝过滤器,这样我们就可以将每个帖子的Markdown内容转换为HTML。要做到这一点,创建一个新的减价
类,稍后将被Twig扩展使用。它只需要定义一个方法来将Markdown内容转换为HTML:
1 2 3 4 5 6 7 8 9 10 11
名称空间应用程序\跑龙套;类减价{/ /……公共函数toHtml(字符串$文本):字符串{返回$这->解析器->文本($文本);}}
接下来,创建一个新的Twig扩展并定义一个名为md2html
使用树枝\ TwigFilter
类。注入新定义的减价
类在Twig扩展的构造函数中:
12 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
名称空间应用程序\嫩枝;使用应用程序\跑龙套\减价;使用嫩枝\扩展\AbstractExtension;使用嫩枝\TwigFilter;类AppExtension扩展AbstractExtension{私人$解析器;公共函数__construct(减价$解析器){$这->解析器=$解析器;}公共函数getFilters(){返回[新TwigFilter (“md2html”, ($这,“markdownToHtml”]、[“is_safe”= > [“html”),“pre_escape”= >“html”,]),];}公共函数markdownToHtml($内容){返回$这->解析器->toHtml ($内容);}}
就是这样!
如果你在用默认的服务。yaml的配置,你完蛋了!欧宝娱乐app下载地址Symfony将自动了解您的新服务,并将其标记为Twig扩展。
下一个:形式