模板
编辑本页警告:您正在浏览的文档欧宝官网下载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;使用嫩枝\TwigFilter;类AppExtension扩展AbstractExtension{私人$解析器;公共函数__construct(减价$解析器){$这->解析器=$解析器;}公共函数getFilters(){返回[新TwigFilter (“md2html”, ($这,“markdownToHtml”]、[“is_safe”= > [“html”),“pre_escape”= >“html”]),];}公共函数markdownToHtml($内容){返回$这->解析器->toHtml ($内容);}公共函数getName(){返回“app_extension”;}}
就是这样!
如果你在用默认的服务。yml配置,你完蛋了!ob娱乐下载Symfony将自动了解您的新服务,并将其标记为Twig扩展。
下一个:形式