Я ищу заменить токены в переменных, передаваемых в мой шаблон из контроллера, включением для другого шаблона; что-то концептуально вроде:
// controller
$post->content = "<p>Here's a short post that an enduser wrote. The enduser wants
product info to appear here: %product_info_here%. Over and out.</p>";
// Twig template
<div class="content">
{{ post.content
| replace({ '%product_info_here%': include('product_info.html.twig') }) }}
</div>
С самого начала, чтобы посмотреть на код Twig, похоже, что фильтры не имеют доступа к своему контексту, и поэтому не смогут выполнить это. Эта функциональность уже существует, и если нет, то где будет правильное место в архитектуре ветки для ее добавления?
UPDATE:
Это сделано для того, чтобы конечный пользователь мог определить, куда приложение должно внедрить частичное. Я поместил пример в контроллер для краткости; на самом деле буквальный токен будет частью записи Post в базе данных, введенной конечным пользователем, а содержимое сообщения будет передано в шаблон Twig. Мне бы хотелось, чтобы шаблон Twig анализировал содержимое сообщения для токена и вставлял частичное.