Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态可解析的细枝名称空间_Php_Symfony_Twig_Symfony4 - Fatal编程技术网

Php 动态可解析的细枝名称空间

Php 动态可解析的细枝名称空间,php,symfony,twig,symfony4,Php,Symfony,Twig,Symfony4,我有一个Symfony应用程序,可以处理来自多个域的请求。在这些域上,客户能够创建可在其CMS模块中使用的自定义细枝模板。这些模板保存到/path/to/ftp/example.com/cms\u templates/目录中 在Symfony的早期版本中,呈现这些模板不是问题。在mydomain.com/page_one上的传入请求中,细枝模板的绝对路径可以解析为,例如/path/to/ftp/mydomain.com/cms_templates/page_one.html.Twig。已验证模板

我有一个Symfony应用程序,可以处理来自多个域的请求。在这些域上,客户能够创建可在其CMS模块中使用的自定义细枝模板。这些模板保存到
/path/to/ftp/example.com/cms\u templates/
目录中

在Symfony的早期版本中,呈现这些模板不是问题。在mydomain.com/page_one上的传入请求中,细枝模板的绝对路径可以解析为,例如
/path/to/ftp/mydomain.com/cms_templates/page_one.html.Twig
。已验证模板的存在并呈现模板。但是,在Symfony 4中,支持绝对模板路径

我在
twig.path
中想到了一个名为“custom”的函数,它指向
/path/to/ftp
,然后用
@custom/mydomain.com/cms\u templates/page\u one.html.twig
引用模板。问题是,
/path/to/ftp
不仅包含模板,还包含其他文件的加载。TemplateCacheWarmer正在遍历所有这些文件

我实际上在寻找的是一种注册细枝名称空间的方法,比如说动态解析的
@cms
,这样我就可以在其中插入当前请求的主机名。然后我就可以使用
@cms\page\u one.html.twig
引用模板。这些模板不需要缓存预热

如何实现这样的功能?我在细枝文档上看了看,但看起来我就是搞不懂

TLDR当domain.com在不同请求之间存在差异时,如何让Symfony/Twig将模板
@foo\template.html.Twig
解析为
/path/to/domain.com/templates/template.html.Twig