Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Catalyst and DBI

by brainbuz (Novice)
on Sep 08, 2011 at 15:16 UTC ( #924839=note: print w/replies, xml ) Need Help??


in reply to Re^3: Catalyst and DBI
in thread Catalyst and DBI

I've been working on some documentation for dbi models.

  • http://brainbuz.org/techinfo/Catalyst-Model-Simple-Tutorial.html
  • or
  • https://github.com/brainbuz/Catalyst--Model--Simple--Tutorial

You would create a single model to connect to each database. Then you would create submodels for each group of methods, I frequently group them by table.

# Parent MODEL package BoPeep::Model::BoPeep; use strict; use warnings; use DBIx::Simple ; use parent 'Catalyst::Model::DBI'; __PACKAGE__->config( dsn => BoPeep->config->{dsn} , user => BoPeep->config->{user} , password => BoPeep->config->{password} , ); use Moose ; #use Moose immediately before calling #on Moose to extend the object has db=>( is =>'ro', isa=>'DBIx::Simple', lazy_build=> 1, # If we don't want to handle all dbis methods, # specify those that we want. # handles=> [qw/query flat /], ); sub _build_db { my $self = shift ; return DBIx::Simple->connect($self->dbh); } ; # Child Model package BoPeep::Model::BoPeep::Flock; use Moose; use BoPeep; use namespace::autoclean; extends 'BoPeep::Model::BoPeep'; sub List { my $self = shift ; my $db = $self->db ; my @sheep = $db->query('SELECT * FROM flock')->flat ; return @sheep ; } __PACKAGE__->meta->make_immutable( inline_constructor => 0 ); 1;

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://924839]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2022-07-04 05:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?