Re: [Maypole] Re: Maypole responding to requests very slowly (or, how to get just one associated record instead of getting the world)

From: David Baird (dave at riverside-cms.co.uk)
Date: Fri Dec 03 2004 - 16:08:25 GMT


Simon Flack wrote:
> Peter Speltz wrote:
>> I was thinking in the view::base where "IT" is created of doing
>> something like
>> this:
>>
>> . . .
>> cgi => $r->template_args{classmetadata_cgi} || { $class->to_cgi }
>> . . .
>>
>> Then the model's sub can make them if it wants or set it to "1" to get
>> none or
>> do nothing and get them.
>
>
> That looks good. But I'm not sure that it should be controlled by a
> template parameter. I was going to suggest something in $r->config, but
> that doesn't smell quite right either.
>
> Perhaps it's something that you define on a class-by-class basis. Or
> perhaps you want different behaviour for different actions in a model?
>
> I'd be tempted to change it to:
>
> cgi => sub { $class->to_cgi() },
> or
> cgi => sub { $class->to_field(@_) },
>
> That should work quite nicely for M::V::TT - there's no overhead unless
> you actually use it in the template. I imagine you'd need a different
> solution for Mason though.

Mason templates are just Perl, so you would say

     $classmetadata->{cgi}->()

instead of

     $classmetadata->{cgi}

Out of interest, how does the call look in TT - is it the same for both
cases?

Maybe the whole classmetadata thing should be an object?

d.

_______________________________________________
maypole mailing list
maypole at lists.netthink.co.uk
http://lists.netthink.co.uk/listinfo/maypole



This archive was generated by hypermail 2.1.3 : Thu Feb 24 2005 - 22:25:57 GMT