Динамически разрешимые пространства имен Twig - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть приложение Symfony, которое обрабатывает запросы из нескольких доменов.На этих доменах клиенты могут создавать собственные шаблоны Twig, которые можно использовать в их модуле CMS.Эти шаблоны сохраняются в каталоге /path/to/ftp/example.com/cms_templates/.

В предыдущих версиях Symfony рендеринг этих шаблонов не был проблемой.При входящем запросе на mydomain.com/page_one абсолютный путь шаблона Twig может быть разрешен, например, /path/to/ftp/mydomain.com/cms_templates/page_one.html.twig.Существование шаблона было проверено, и шаблон был представлен.Однако в Symfony 4 поддержка абсолютных путей к шаблонам была удалена .

Я думал о регистрации дополнительного пространства имен Twig в twig.paths, которое называется 'custom', которое указывает на /path/to/ftp, а затем ссылается на шаблоны с помощью @custom/mydomain.com/cms_templates/page_one.html.twig.Проблема в том, что /path/to/ftp содержит не только шаблоны, но также загружает и загружает другие файлы.И TemplateCacheWarmer перебирает все эти файлы.

То, что я на самом деле ищу, - это способ регистрации пространства имен Twig, скажем, @cms, который разрешается на лету так, что я могу ввести имя хостатекущего запроса в нем.Тогда я смогу ссылаться на шаблон, используя @cms\page_one.html.twig.Для этих шаблонов прогрев кэша не требуется.

Как добиться такой функциональности?Я посмотрел на документацию Twig, но похоже, что просто не могу понять.

TLDR; Как заставить Symfony / Twig разрешить шаблон @foo\template.html.twig до /path/to/domain.com/templates/template.html.twigкогда domain.com отличается между запросами.

...