<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 5, 2014 at 12:56 PM, David Precious <span dir="ltr"><<a href="mailto:davidp@preshweb.co.uk" target="_blank">davidp@preshweb.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>On Thu, 4 Dec 2014 13:15:14 +0200<br>
Gabor Szabo <<a href="mailto:gabor@szabgab.com" target="_blank">gabor@szabgab.com</a>> wrote:<br>
<br>
> Hi,<br>
><br>
> in a Dancer application I have sessions turned on in config.yml<br>
> If the route calls template(), the session is created and the cookie<br>
> is sent.<br>
</span>[...]<br>
<span>> but I was wondering, is this behavior (that it is template() that<br>
> sets the cookie) on purpose?<br>
<br>
</span>Attempting to fetch a session creates one if one doesn't yet exist.<br>
<br>
template() calls Dancer::Template::Abstract::_prepare_tokens_options()<br>
which pre-populates the template tokens with some useful information<br>
the template may use, including information about the request, the<br>
Dancer version in use, and - the cause of this behaviour - the session<br>
(so that templates can say e.g. "Hi, [% session.username %]!").<br>
<br>
So, yes, it's expected.<br>
<br>
There's an argument to be made that creating a session just because you<br>
tried to read from it is sub-optimal, and that the session creation<br>
should be deferred until such time as you try to actually store<br>
something in to it - but that's probably unlikely to change in D1.<br><br></blockquote><div><br></div><div>Does this behave differently in D2 ?</div><div>Would it be possible to add a config option to turn this off in D1?</div><div><br></div><div><br></div><div>Gabor</div><div><br></div><div><br></div><div> </div></div>
</div></div>