Hi all,

Some days ago, I've added support for global variables in Twig, and so some global variables are now made available in templates, like 'request', 'session', and 'user'.

Right now, you can access them via a simple name:

{{ user.username }}
{{ session.flash('notice') }}

When I've added 'user', some people wondered if it would not be better to "namespace" these variables to avoid problems with user-defined variables ('user' is probably the best example here):

https://github.com/fabpot/symfony/commit/50809d2ae03d4ce0d744ff6fd2b3c515da353d6c

Namespacing the variables can be achieved by prefexing them with a prefix (like with 'sf_*' in symfony1), or wrapping them in a global object:

* Prefix:

{{ sf_user.username }}
{{ sf_session.flash('notice') }}

{{ _user.username }}
{{ _session.flash('notice') }}

* Global object:

{{ app.user.username }}
{{ app.session.flash('notice') }}

{{ g.user.username }}
{{ g.session.flash('notice') }}

So, the question is, which one do you prefer (keep it like it is, prefix, or global object)? And if you like option 2 and 3 better, which prefix/name do you think is best?

My personal preference goes to solution 3 with 'app' as a name for the global object (which is by the way what people suggested in the comments of the commit).

Fabien

--
Fabien Potencier
Sensio CEO - symfony lead developer
sensiolabs.com | symfony-project.org | fabien.potencier.org
Tél: +33 1 40 99 80 80

--
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en

Reply via email to