2012-02-17 20 views
13

Cuáles son los pasos de programación para convertir esta cadena:ruta del archivo local a partir de la ramita nombre de la plantilla

AcmeProjectBundle::home.html.twig 

en esto?

/path/Symfony/src/Acme/ProjectBundle/Resources/views/home.html.twig 
+0

¿Estás preguntando por el algoritmo utilizado? ¿O para una función real puedes llamar? Tenga en cuenta que todo esto se hace durante la fase de "compilación" con los resultados almacenados en la memoria caché. No es algo con lo que normalmente lidiarías durante el tiempo de ejecución. – Cerad

+0

Las funciones utilizadas en twig/symfony. – ojreadmore

+0

Ver Symfony \ Bundle \ FrameworkBundle \ Templating \ TemplateNameParser – solarc

Respuesta

24

Si desea recuperar ruta desde un controlador puede utilizar este código:

$parser = $this->container->get('templating.name_parser'); 
$locator = $this->container->get('templating.locator'); 

$path = $locator->locate($parser->parse('AcmeProjectBundle::home.html.twig')); 

Para más información ver el código de:

  • Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser::parse
  • Symfony\Bundle\FrameworkBundle\Templating\Loader\TemplateLocator::locate
Cuestiones relacionadas