模板

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

模板

当PHP在20年前被创建时,开发人员喜欢它的简单性以及它将HTML和动态代码很好地混合在一起。但随着时间的推移,其他模板语言也一样嫩枝-创建是为了使模板更好。

最佳实践

使用树枝模板格式的模板。

一般来说,PHP模板比Twig模板冗长得多,因为它们缺乏对模板所需的许多现代特性的原生支持,比如继承、自动转义和过滤器和函数的命名参数。

Twig是Symfony中的默认模板格式,在所有非php模板引擎中拥有最大的社区支ob娱乐下载持(它被用于Drupal 8等高调的项目中)。欧宝体育平台怎么样

另外,Twig是Symfony 3.0中唯一保证支持的模板格式。ob娱乐下载事实上,PHP可能会从官方支持的模板引擎中删除。

模板的位置

最佳实践

存储应用程序的所有模板应用程序/资源/视图/目录中。

传统上,Symfony开发人员ob娱乐下载将应用程序模板存储在资源/视图/每个bundle的目录。然后他们使用Twig名称空间来指代它们(例如。@AcmeDemo /违约/ index.html.twig).

但是对于应用程序中使用的模板,将它们存储在应用程序/资源/视图/目录中。对于初学者来说,这大大简化了它们的逻辑名称:

存储在bundle中的模板 存储在app /
@AcmeDemo / index.html.twig index.html.twig
@AcmeDemo /违约/ index.html.twig 默认的/ index.html.twig
@AcmeDemo / /子目录/ index.html.twig违约 默认的/子目录/ index.html.twig

另一个优点是集中模板可以简化设计人员的工作。他们不需要在分散在许多bundle中的许多目录中寻找模板。

最佳实践

目录名和模板名使用小写的snake_case。

最佳实践

模板名称中的部分模板使用带前缀的下划线。

方法重用模板代码包括函数避免冗余代码。要在文件系统中确定这些部分,你应该为这些部分加上前缀,而任何其他模板都没有HTML正文或扩展标记一个下划线。

树枝的扩展

最佳实践

中定义您的Twig扩展AppBundle /理解/目录中。您的应用程序将自动检测并配置它们。

我们的应用程序需要自定义md2html树枝过滤器,这样我们就可以将每个帖子的Markdown内容转换为HTML。

要做到这一点,首先,安装优秀ParsedownMarkdown解析器作为项目的新依赖项:

1
编译器需要erusev/解析

然后,创建一个新的减价类,稍后将被Twig扩展使用。它只需要定义一个方法来将Markdown内容转换为HTML:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
名称空间AppBundle跑龙套减价私人解析器公共函数__construct()->解析器=\ Parsedown ();}公共函数toHtml文本返回->解析器->文本(文本);}}

接下来,创建一个新的Twig扩展并定义一个名为md2html使用树枝\ TwigFilter类。注入新定义的减价类在Twig扩展的构造函数中:

12 34 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使用嫩枝TwigFilterAppExtension扩展AbstractExtension私人解析器公共函数__construct(减价解析器->解析器=解析器;}公共函数getFilters()返回TwigFilter (“md2html”, (“markdownToHtml”]、[“is_safe”= > [“html”),“pre_escape”= >“html”]),];}公共函数markdownToHtml内容返回->解析器->toHtml (内容);}公共函数getName()返回“app_extension”;}}

就是这样!

如果你在用默认的服务。yml配置,你完蛋了!ob娱乐下载Symfony将自动了解您的新服务,并将其标记为Twig扩展。


下一个:形式

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。