Я также (как и Stratadox) сомневаюсь, что это именно то, что вам нужно, но в любом случае, если вам нужно получить все шаблоны, в которые включен шаблон partial.html.twig
, вы можете использовать Symfony Finder Component, как этот:
// App/Controller/DefaultController.php
public function foo(){
$templatesDir = $this->get('kernel')->getProjectDir() . '/templates';
$finder = new Symfony\Component\Finder\Finder();
$finder->files()->in($templatesDir)->contains("{% include 'partial.html.twig' %}");
$templateNames = [];
foreach ($finder as $template) {
$templateNames[] = $template->getFilename();
}
}
Теперь вы можете делать что угодно с этими именами.
Конечно, вы должны иметь дело с такими проблемами, как двойные и одинарные кавычки, когда включаете partial.html.twig
или комментарии, которые включают эту строку, без реального включения шаблона (не очень вероятный случай).
Вы можете решить эту проблему (особенно с помощью кавычек), используя подходящее регулярное выражение вместо строки в качестве аргумента функции contains()
$finder
.