树枝配置引用(TwigBundle)
编辑该页面警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.1,不再维护。
读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.3(当前的稳定版本)。
树枝配置引用(TwigBundle)
TwigBundle Symfony的树枝图书馆集成应用程序欧宝娱乐app下载地址渲染模板。所有这些下配置的选项嫩枝
关键在你的应用程序配置。
1 2 3 4 5
#显示默认的配置值定义为Symfony欧宝娱乐app下载地址美元php bin /控制台配置:dump-reference树枝#显示您的应用程序所使用的实际配置值美元php bin /控制台调试:配置树枝
请注意
当使用XML时,您必须使用http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/twig
名称空间和相关的XSD模式可在:http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/twig/twig-1.0.xsd
配置
- auto_reload
- autoescape
- autoescape_service
- autoescape_service_method
- base_template_class
- 缓存
- 字符集
- 调试
- exception_controller
- form_themes
- 优化
- 路径
- strict_variables
auto_reload
类型:布尔
默认的:“% kernel.debug %”
如果真正的
呈现,每当一个模板,Symfony检查第一如果改变了自编译源代码。欧宝娱乐app下载地址如果它改变了,模板自动重新编译。
autoescape
类型:布尔
或字符串
默认的:“名字”
如果设置为假
、自动转义是禁用的(你仍然可以逃脱每个内容单独的模板)。
谨慎
设置这个选项假
是危险的,它会使你的应用程序容易受到XSS攻击,因为大多数第三方包假设auto-escaping启用和不逃避内容本身。
如果设置为一个字符串,模板内容逃脱了使用策略的名称。允许的值是html
,js
,css
,url
,html_attr
和的名字
。默认值是的名字
。这一战略逃内容根据模板名称扩展(例如,它使用html
为* .html.twig
模板和js
为* .js.html
模板)。
提示
看到autoescape_service和autoescape_service_method定义自己的逃避策略。
autoescape_service
类型:字符串
默认的:零
1.17的树枝,逃避策略应用默认的模板是在编译时确定基于模板的文件名。这意味着,例如,的内容* .html.twig
模板是HTML和逃脱的内容* .js.twig
是JavaScript的逃脱了。
这个选项允许定义Symfony服务将被用来决定默认逃离应用到模板。欧宝娱乐app下载地址
base_template_class
类型:字符串
默认的:“树枝\ \模板”
树枝模板编译成PHP类之前使用它们来呈现内容。这个选项定义了基类的所有模板类扩展。使用自定义基本模板是气馁,因为它会使你的应用程序难以维护。
缓存
类型:字符串
|假
默认的:“% kernel.cache_dir % /枝”
在使用树枝模板来呈现一些内容之前,他们是编译成普通PHP代码。编译是一个昂贵的过程,所以结果是缓存目录中定义的配置选项。
设置这个选项假
禁用树枝模板编译。然而,这是不推荐;即使是在dev
环境,因为auto_reload
选项确保缓存修改过的模板重新编译。
字符集
类型:字符串
默认的:“% kernel.charset %”
使用的字符集模板文件。默认的值是一样的kernel.charset
容器参数,这是utf - 8
在默认情况下在Symfony欧宝娱乐app下载地址应用程序。
日期
这些选项定义使用的默认值日期
过滤格式化日期和时间值。他们是有用的,以避免在每个传递相同的参数)日期
过滤器调用。
exception_controller
类型:字符串
默认的:twig.controller.exception: showAction
这个控制器被激活后抛出异常在您的应用程序。默认的控制器(ExceptionController)是负责呈现特定的模板不同错误条件(见下如何自定义错误页面吗)。修改这个选项是先进的。如果你需要定制一个错误页面应该使用前面的链接。如果您需要执行某些行为异常,你应该添加一个侦听器kernel.exception
事件(见内置Symfony欧宝娱乐app下载地址服务标签)。
form_themes
类型:数组
的字符串
默认的:(“form_div_layout.html.twig”)
定义一个或多个形式的主题这是适用于所有应用程序的形式:
1 2 3 4
#配置/包/ twig.yaml枝:form_themes:[' bootstrap_4_layout.html.twig ',“形式/ my_theme.html.twig”]#……
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
< !——配置/包/树枝。xml - - >< ?xml version = " 1.0 " encoding = " utf - 8 " ? ><容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:树枝=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/twig”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/twig //www.oldmanjams.com/schema/dic/twig/twig-1.0.xsd”><枝:配置><枝:form-theme>bootstrap_4_layout.html.twig< /枝:form-theme><枝:form-theme>形式/ my_theme.html.twig< /枝:form-theme>< !——……- - >< /枝:配置>< /容器>
1 2 3 4 5 6 7 8
/ /配置/包/ twig.php美元容器- >loadFromExtension (“树枝”,(“form_themes”= > [“bootstrap_4_layout.html.twig”,“形式/ my_theme.html.twig”),/ /……]);
主题定义的顺序是很重要的,因为每个主题覆盖前一个。当呈现表单字段中定义的块不是形式主题,Symfony会回到之前的主题,直到第一个。欧宝娱乐app下载地址
这些全球主题应用于所有形式,甚至那些使用form_theme树枝标签,但你可以禁用全球主题特定的形式。
number_format
这些选项定义使用的默认值number_format
过滤器格式数值。他们是有用的,以避免在每个传递相同的参数)number_format
过滤器调用。
优化
类型:int
默认的:1
树枝包括一个扩展名为优化器
这是在Symfony应用程序中默认启用。欧宝娱乐app下载地址这个扩展分析了模板编译时优化它们。例如,如果您的模板不使用特殊循环
变量在一个为
标签,这个扩展删除未使用的变量的初始化。
默认情况下,此选项1
,这意味着所有的优化都打开。将其设置为0
禁用所有的优化。你甚至可以有选择地启用或禁用这些优化,树枝的解释文档欧宝体育电话优化器扩展。
路径
类型:数组
默认的:零
这个选项定义了目录,Symfony会寻找树枝模板除了默认的位置。欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony寻找模板按照以下顺序:
- 这个选项中定义的目录;
- 的
资源/视图/
应用程序中使用的包的目录; - 的
src /资源/视图/
应用程序的目录; - 中定义的目录
default_path
选择。
的值路径
选择被定义为键:值
对的地方价值
部分可以零
。例如:
1 2 3 4 5
#配置/包/ twig.yaml枝:#……道路:' % kernel.project_dir % /供应商/ acme / foo bar /模板”:~
1 2 3 4 5 6 7 8 9 10 11 12 13
< !——配置/包/树枝。xml - - ><容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:树枝=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/twig”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/twig //www.oldmanjams.com/schema/dic/twig/twig-1.0.xsd”><枝:配置>< !——……- - ><枝:路径>% kernel.project_dir % /供应商/ acme / foo bar /模板< /枝:路径>< /枝:配置>< /容器>
1 2 3 4 5 6 7
/ /配置/包/ twig.php美元容器- >loadFromExtension (“树枝”,(/ /……“路径”= > [' % kernel.project_dir % /供应商/ acme / foo bar /模板”= >零、]]);
中定义的目录路径
选择优先级大于Symfony所定义的默认目录。欧宝娱乐app下载地址在上面的例子中,如果模板中存在/ acme / foo bar /模板
目录在您的应用程序供应商/
,它将使用Symfony。欧宝娱乐app下载地址
如果你为任何路径提供一个值,Symfony会考虑它的树枝名称空间目录:欧宝娱乐app下载地址
1 2 3 4 5
#配置/包/ twig.yaml枝:#……道路:' % kernel.project_dir % /供应商/ acme / foo bar /模板”:“foo_bar”
1 2 3 4 5 6 7 8 9 10 11 12 13
< !——配置/包/树枝。xml - - ><容器xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xmlns:树枝=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/twig”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/dic/services //www.oldmanjams.com/schema/dic/services/services-1.0.xsd //www.oldmanjams.com/schema/dic/twig //www.oldmanjams.com/schema/dic/twig/twig-1.0.xsd”><枝:配置>< !——……- - ><枝:路径名称空间=“foo_bar”>% kernel.project_dir % /供应商/ acme / foo bar /模板< /枝:路径>< /枝:配置>< /容器>
1 2 3 4 5 6 7
#配置/包/ twig.php美元容器- >loadFromExtension (“树枝”,(/ /……“路径”= > [' % kernel.project_dir % /供应商/ acme / foo bar /模板”= >“foo_bar”、]]);
这个选项是有用的不惹Symfony定义的默认模板目录。欧宝娱乐app下载地址此外,它简化了如何是指模板:
1
@foo_bar / template_name.html.twig