As long as you acknowledge that $my_cute_app is a global variable  
visible to all components (not just components under this  
autohandler). It is dangerous because you might accidentally run a  
component that skips this autohandler but uses the variable, hence  
getting a previous request's value.

Jon

On Dec 19, 2007, at 8:30 AM, Emil-Nicolaie Perhinschi wrote:

> Is there anything wrong with using this in autohandler
>
> <%once>
> our ($my_cute_app);
> </%once>
>
> <%init>
> $my_cute_app = My::Cute::App->new();
> </%init>
>
> then using $my_cute_app in all components called by the autohandler ?
>
> Then you can have not only shared data, but also shared methods etc.
>
>
> I am mostly a mason noob (use it rarely for personal projects), but
> that seems the most mason-ic solution :)
>
>
> Emil
>
> On Dec 16, 2007 12:42 AM, Xicheng Jia <[EMAIL PROTECTED]> wrote:
>> On 12/14/07, Anthony Ettinger <[EMAIL PROTECTED]> wrote:
>>> Can you perhaps provide a link to details about this technique?  
>>> which
>>> files, how it gets instantiated, etc.
>>>
>>> I definitely want the "global" to be instantiated on each request,
>>> without sharing value between users. and then dies off at the end of
>>> the request.
>>
>> I think $m->notes() just did all what you want. It lives per-request,
>> so different users have different $m->notes, you can use $m->notes to
>> deliver information between Mason components, and use
>> $HTML::Mason::Commands::m->notes(....) to get/set notes  
>> information in
>> the backend Perl modules. So no need to reinvent the wheel..
>>
>> If you use "global", i.e. $stash as defined in Jonathan's post, I
>> think you can just localize it in your top-most autohandler to keep
>> its values per-request:
>>
>> <%init>
>>  local $stash;
>>  ....
>> </%init>
>>
>> But to differentiate it between users, you need to make $stash a hash
>> reference keyed by session-ids or any unique-ids. you probably still
>> need $m->notes to deliver these ids between components or backend
>> modules.... or just use $m->session or the like instead of the global
>> $stash.. Just my $0.02.
>>
>> Regards,
>> Xicheng
>>
>>
>>> On Dec 14, 2007 4:52 PM, Jonathan Swartz <[EMAIL PROTECTED]> wrote:
>>>> If all you want is a global stash (as in TT), then you could  
>>>> create a
>>>> global called $stash visible to all components:
>>>>
>>>>      allow_globals => [qw($stash)]
>>>>      ...
>>>>      $interp->set_global(stash => { ... });
>>>>
>>>> This is no different than
>>>>
>>>>     package HTML::Mason::Commands;
>>>>     use vars qw($stash);
>>>>
>>>>     $HTML::Mason::Commands::stash = { ... };
>>>>
>>>>
>>>>
>>>> On Dec 14, 2007, at 3:48 PM, Anthony Ettinger wrote:
>>>>
>>>>> On Dec 14, 2007 1:45 PM, Perrin Harkins <[EMAIL PROTECTED]> wrote:
>>>>>> On Dec 14, 2007 3:04 PM, Steven Saner <[EMAIL PROTECTED]>  
>>>>>> wrote:
>>>>>>> Don't you have a reference to the MasonX::WebApp object  
>>>>>>> defined as a
>>>>>>> global variable, $app or whatever? You could store the data  
>>>>>>> in that
>>>>>>> object.
>>>>>>
>>>>>> Is there any advantage you know of to using something like
>>>>>> $app->data() over $m->notes()?
>>>>>>
>>>>>> - Perrin
>>>>>>
>>>>>
>>>>>
>>>>> Is $app->data() something that's available as a standard?
>>>>>
>>>>> I use $m->notes() for this sort of stuff, but the problem I  
>>>>> have is
>>>>> its only available to mason parts (not backend perl modules  
>>>>> that are
>>>>> loaded).
>>>>>
>>>>> --
>>>>> Anthony Ettinger
>>>>> 408-656-2473
>>>>> http://anthony.ettinger.name
>>>>>
>>>>> var (bonita, farley) = new Dog;
>>>>> farley.barks("very loud");
>>>>> bonita.barks("at strangers");
>>>>>
>>>>> ------------------------------------------------------------------ 
>>>>> ----
>>>>
>>>>> ---
>>>>> SF.Net email is sponsored by:
>>>>> Check out the new SourceForge.net Marketplace.
>>>>> It's the best place to buy or sell services
>>>>> for just about anything Open Source.
>>>>> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/
>>>>> marketplace
>>>>> _______________________________________________
>>>>> Mason-users mailing list
>>>>> Mason-users@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/mason-users
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Anthony Ettinger
>>> 408-656-2473
>>> http://anthony.ettinger.name
>>>
>>> var (bonita, farley) = new Dog;
>>> farley.barks("very loud");
>>> bonita.barks("at strangers");
>>>
>>> -------------------------------------------------------------------- 
>>> -----
>>> SF.Net email is sponsored by:
>>> Check out the new SourceForge.net Marketplace.
>>> It's the best place to buy or sell services
>>> for just about anything Open Source.
>>> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/ 
>>> marketplace
>>> _______________________________________________
>>> Mason-users mailing list
>>> Mason-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/mason-users
>>>
>> --
>> Xicheng Jia (Ph.D in Comp. Applied Math)
>>
>> --------------------------------------------------------------------- 
>> ----
>>
>> SF.Net email is sponsored by:
>> Check out the new SourceForge.net Marketplace.
>> It's the best place to buy or sell services
>> for just about anything Open Source.
>> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/ 
>> marketplace
>> _______________________________________________
>> Mason-users mailing list
>> Mason-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/mason-users
>>
>
> ---------------------------------------------------------------------- 
> ---
> SF.Net email is sponsored by:
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services
> for just about anything Open Source.
> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/ 
> marketplace
> _______________________________________________
> Mason-users mailing list
> Mason-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mason-users
>


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users

Reply via email to