Asignar variable en la carpeta de las plantillas Twig

¿cómo puedo asignar variables a la carpeta del template?

Respuestas

#1

Me temo que no entiendo bien tu pregunta. ¿Quieres pasar variables a una plantilla Twig? ¿Quieres guardar en una variable la ruta de la carpeta donde se guardan las plantillas? ¿Quieres hacer configurable la carpeta en la que se guardan las plantillas?

#2

declarar una variable y que este disponible en todas las plantillas

#3

Lo que quieres hacer se llaman "variables globales". Si usas Twig como una librería independiente, define esas variables con el método addGlobal():

$twig = new Twig_Environment($loader);
// ...
$twig->addGlobal('nombre_variable', 'valor_variable');

Las variables pueden ser simples (cadenas, números, arrays) y también objetos con los que puedes invocar métodos en tus plantillas.

Si usas Twig dentro de un framework como Symfony, entonces solo tienes que declarar estas variables en la opción de configuración twig.globals:

# app/config/config.yml
twig:
    # ...
    globals:
        nombre_variable: valor_variable
#4

Gracias Javier.

#5

Tengo una duda. ¿se puede asignar una variable sin array?

$template = $twig->loadTemplate('layout_index.html');
echo $template->render(array('t' => 'variable'));
#6

La variable no tiene por qué ser un array, pero lo que pases al método render() sí que tiene que ser un array. La razón es que las variables necesitan tener un nombre y un valor, por eso se usan arrays asociativos.