Hi,

http://tomyhero-perl-module.googlecode.com/svn/trunk/CatalystX-Controller-FormValidator-Lazy/

This is what I want to achieve , I just implement it on my way.

I wanted to know how to implement this in best practice way. Can you
look at it and give me a suggestion??

thanks,

Tomohiro


2007/4/1, Daisuke Maki <[EMAIL PROTECTED]>:

It's extremely hard to say whether or not you should do X or Y without
knowing *exactly* what you are trying to achieve.
I can only say that you *probably* shouldn't be using new(), but I
really have no clue at this point.

Perhaps you want to be using COMPONENT() or ACCEPT_CONTEXT()?
COMPONENT() gets called once at setup() time, and ACCEPT_CONTEXT() gets
called at various steps, when things like $c->controller() and
$c->component() gets called.

--d


Tomohiro Teranishi wrote:
> Hi , Daisuke-san,
>
> Thank you for your reply,
>
> I believe I knew the future of NEXT.pm.
>
> What I do want to do is making Controller Extension modules,  so I
> wanted know if I can use new() or should not . And I thought there may
> be a way to around use multiple extensions somehow even using new() ,
> so I asked this question.
>
> http://www.gossamer-threads.com/lists/catalyst/users/13163
>
> For more specific , I created a plugin mention on the mailing list and
> I am trying to convert it to controller extension. If I use new() in
> the controller module , then if somebody want to use the controller
> and C::C::FormBuilder both then can not avoid error unless modify
> source code.  That is what I was worry about it.
>
> So I guess I should not use new() in the controller??  Make sense??
>
> thanks,
>
> Tomohiro
>
>
> 2007/4/1, Daisuke Maki <[EMAIL PROTECTED]>:
>> That's a "feature" in NEXT.pm.
>>
>> If your class hierarchy including the base class (the *real* base class,
>> in this case Class::Accessor) don't properly use NEXT.pm, then you don't
>> get the benefit of re-dispatch for multiple paths.
>>
>> So you do need to be careful when you want multiple inheritance in your
>> controllers... However, in your particular case you should be able to
>> get away by just putting FormBuilder before BindLex as BindLex doesn't
>> require any special initialization in new().
>>
>> Of course, if you *really* wanted to, you could modify the behavior of
>> NEXT.pm for the duration of your application...
>>
>>    sub NEXT::ELSEWHERE::ancestors {
>>        my @inlist = shift;
>>        my @outlist = @inlist;
>>        my @parents = @inlist;
>>
>>        while (my $parent = shift @parents) {
>>            no strict 'refs';
>>            my @isa = @{"${parent}::ISA"};
>>            if (@isa) {
>>                push @outlist, @isa;
>>                push @parents, @isa;
>>            }
>>        }
>>        return @outlist;
>>    }
>>
>> This will force NEXT.pm to look at immediate parents first, but will
>> change NEXT.pm semantics, so if anything really relies on its awkward
>> behavior (to me anyway) this change may break things.
>>
>> Use at your own risk ;)
>>
>> --d
>>
>> Tomohiro Teranishi wrote:
>> > Hi,
>> >
>> > I was looking at source code for C::C::FormBuilder to know how to
>> > write Controller extention module. Then I thought using new() method
>> > is nice idea to run only once.
>> >
>> > But I realize when I want to use two controller extention modules same
>> > time, it may cause problem because of NEXT specification.
>> >
>> > e.x.
>> >
>> > Let's say , I want to use C::C::FormBuilder and C::C::BindLex same
>> time.
>> >
>> > # Below case is OK
>> > use base qw/Catalyst::Controller::FormBuilder
>> > Catalyst::Controller::BindLex/;
>> >
>> > # In this case,  C::C::FormBuilder->new will not called.
>> > use base qw/Catalyst::Controller::BindLex
>> > Catalyst::Controller::FormBuilder/;
>> >
>> > I think only first base module run NEXT but not the others.
>> >
>> > Am I doing something wrong??
>> > or should not use new() ??
>> > or should not use multiple controllers??
>> >
>> > thanks,
>> >
>> > Tomohiro Teranishi
>> >
>> > _______________________________________________
>> > List: [email protected]
>> > Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
>> > Searchable archive:
>> http://www.mail-archive.com/[email protected]/
>> > Dev site: http://dev.catalyst.perl.org/
>> >
>>
>>
>> _______________________________________________
>> List: [email protected]
>> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
>> Searchable archive:
>> http://www.mail-archive.com/[email protected]/
>> Dev site: http://dev.catalyst.perl.org/
>>
>
> _______________________________________________
> List: [email protected]
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/[email protected]/
> Dev site: http://dev.catalyst.perl.org/
>


_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/


_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to