[Catalyst] Catalyst::Model::Adaptor - because models shouldn't
	*do* anything
    Christopher H. Laco 
    claco at chrislaco.com
       
    Wed Oct 10 15:18:52 GMT 2007
    
    
  
John Napiorkowski wrote:
> --- Jonathan Rockway <jon at jrock.us> wrote:
> =
>> John Napiorkowski wrote:
>>> One thing that I've done a lot with these kinds of
>>> adapters is use AUTOLOAD or use Moose's built in
>>> attribute delegation to make calling the adapted
>>> classes methods easier.  Would you take a patch
>> for
>>> something like this and how might you envision it
>>> working.  As a plugin, for example?
>>>   =
>> If your model is:
>>
>>    package MyApp::Model::Foo;
>>    use base 'Catalyst::Model::Adaptor';
>>    __PACKAGE__->config( class =3D> 'YourClass' );
>>
>> Then, in
>>
>>   my $yourclass =3D $c->model('Foo')
>>
>> ref $yourclass is YourClass, not MyApp::Model::Foo. =
>> Whatever
>> YourClass->new returns is what $c->model returns.
Well, there is a downside to that. If I needed to override
YourClass->method to do something specific when it's running in Catalyst
as a model, then I have to create yet a third subclass:
  MyApp::Model::Foo  isa   CatalystYourClass  isa YourClass
instead of just overriding MyApp::Model::FOO->method
Personally, I prefer the latter and AUTOLOAD. If you hate autoload, you
can always map the methods dynamically.
-=3DChris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: OpenPGP digital signature
Url : http://lists.scsys.co.uk/pipermail/catalyst/attachments/20071010/b2df=
653b/signature.pgp
    
    
More information about the Catalyst
mailing list