On Wed, Mar 12, 2008 at 4:27 PM, Zbigniew Lukasiak <[EMAIL PROTECTED]> wrote: > On Wed, Mar 12, 2008 at 4:12 PM, Peter Karman <[EMAIL PROTECTED]> wrote: > > > > > > 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? > > OK - so that was just a misunderstanding - I thought we were still > talking about the CRUD methods. > > > > > > > > > > > > > >> $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. > > If you'd make them to use the same db connection than indeed this > would be like the ModelAdaptor. But then again you should have just on > adaptor per model type - not per table (for models with tables).
That should be: just one adaptor class per model type (class). > > > > > > 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. > > Yeah - I would consider the objects on the stash as part of the > interface so they should be the original ORM objects. > > > > > > 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/ > > > > > > > > -- > Zbigniew Lukasiak > http://brudnopis.blogspot.com/ > -- Zbigniew Lukasiak http://brudnopis.blogspot.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/