2010-10-21 20 views
8

Je viens juste de commencer à regarder Twig et je me demande comment j'accomplirais ce qui suit. J'ai une variable $ logged_in à laquelle j'ai besoin d'accéder dans chaque page sur mon site, j'espérais que plutôt que de passer ça au twig renderer à chaque fois dans le tableau de données, il y aurait un moyen pour moi de déclarer ceci quelque part, et pour chaque modèle d'y avoir accès.Templating with Twig - accès permanent à une variable dans tous mes templates

Ai-je besoin de construire une extension pour y parvenir/ou est-ce possible? Je l'ai regardé à travers toutes les pages de la documentation, mais je vais avoir du mal à avoir essayé d'étendre le modèle de base tel que décrit ici ...

Twig Documentation | Recipes | Making the Templates aware of the Contextlien mort

Est-ce la bonne approche?

Merci

+1

J'ai réussi à contourner ce problème en faisant ma demande ajouter les données à le tableau de données $ automatiquement avant de passer à twi g. Je serais toujours intéressé de savoir s'il y a un moyen de fournir ces variables à la brindille nativement sans avoir à les passer – calumbrodie

Répondre

11

Juste read sur les nouvelles fonctionnalités de la version 1.0RC qui devrait aider.

Pris du blogpost:

Globals:

PHP

// a global can be a constant 
$twig->addGlobal('pi', 3.14); 

// or any other valid PHP expression, like an object 
$twig->addGlobal('request', new Request()); 

Modèle

{{ pi }} 

{{ request.params('name') }} 
+0

qui fera pour moi :-) Merci pour les heads up. – calumbrodie