On 03/12/2008 09:44 AM, Zbigniew Lukasiak wrote:
>> So we'd have: >> >> sub thing : Local { >> my ($self, $c, $id) = @_; >> my $thing = $c->model('Foo')->fetch( id => $id ); > > my $thing = $self->model_adaptor->fetch( id => $id ); > > The model adaptor should know the model it is using (and in the case > of DBIC also the table ) In my example, $self is not a CX::CRUD::Controller. Just a plain ol' Catalyst::Controller. Why must it implement a model_adaptor method then? > >> $c->stash->{object} = $thing; # NOT a CX::CRUD::Object >> } >> >> and if wanted to update $thing: >> >> $c->model('Foo')->update( $thing ); > > $self->model_adaptor->update( $thing ); > >> I could live with that. Does it meet your needs? Does it make it easier to >> implement a >> DBIC model and FormFu controller? >> > > Yes. In general - my point is that let's do the wrapping only for the > CRUD methods that need them. Let's not force the user to use the CRUD > wrappers as their models. > Users of CX::CRUD Models or Controllers don't have to use both together. It's just easier if they do. And CX::CRUD doesn't force you to only use its models. You could have: lib/MyApp/Model/Foo.pm # not a CX::CRUD::Model. Just a DBIC::Schema model. lib/MyApp/Model/FooCRUD.pm # is a CX::CRUD::Model::DBIC MyApp::Model::FooCRUD can act like your ModelAdaptor. By adding yet another kind of thing, a model adaptor, into the mix, that feels more complex to me rather than less. I think I'm agreeing with you that the CX::CRUD API could be simplified, that the ::Object class could go away, and that the Model class could take over the c/r/u/d methods that Object currently performs. If you like the model_adaptor() syntax in the Controller API, how would you implement a ModelAdaptor class and how would you change the Controller API to use it? -- Peter Karman . [EMAIL PROTECTED] . http://peknet.com/ _______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/