GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  CLASS::DBI::LOADER (3)

.ds Aq ’

NAME

Class::DBI::Loader - Dynamic definition of Class::DBI sub classes.

CONTENTS

SYNOPSIS



  use Class::DBI::Loader;

  my $loader = Class::DBI::Loader->new(
    dsn                     => "dbi:mysql:dbname",
    user                    => "root",
    password                => "",
    options                 => { RaiseError => 1, AutoCommit => 0 },
    namespace               => "Data",
    additional_classes      => qw/Class::DBI::AbstractSearch/, # or arrayref
    additional_base_classes => qw/My::Stuff/, # or arrayref
    left_base_classes       => qw/Class::DBI::Sweet/, # or arrayref
    constraint              => ^foo.*,
    relationships           => 1,
    options                 => { AutoCommit => 1 },
    inflect                 => { child => children },
    require                 => 1
  );
  my $class = $loader->find_class(film); # $class => Data::Film
  my $obj = $class->retrieve(1);



use with mod_perl

in your startup.pl



  # load all tables
  use Class::DBI::Loader;
  my $loader = Class::DBI::Loader->new(
    dsn       => "dbi:mysql:dbname",
    user      => "root",
    password  => "",
    namespace => "Data",
  );



in your web application.



  use strict;

  # you can use Data::Film directly
  my $film = Data::Film->retrieve($id);



DESCRIPTION

Class::DBI::Loader automate the definition of Class::DBI sub-classes. scan table schemas and setup columns, primary key.

class names are defined by table names and namespace option.



 +-----------+-----------+-----------+
 |   table   | namespace | class     |
 +-----------+-----------+-----------+
 |   foo     | Data      | Data::Foo |
 |   foo_bar |           | FooBar    |
 +-----------+-----------+-----------+



Class::DBI::Loader supports MySQL, Postgres and SQLite.

See Class::DBI::Loader::Generic.

METHODS

new CW%args

additional_base_classes List of additional base classes your table classes will use.
left_base_classes List of additional base classes, that need to be leftmost, for example Class::DBI::Sweet (former Catalyst::Model::CDBI::Sweet).
additional_classes List of additional classes which your table classes will use.
constraint Only load tables matching regex.
exclude Exclude tables matching regex.
debug Enable debug messages.
dsn DBI Data Source Name.
namespace Namespace under which your table classes will be initialized.
password Password.
options Optional hashref to specify DBI connect options
relationships Try to automatically detect/setup has_a and has_many relationships.
inflect An hashref, which contains exceptions to Lingua::EN::Inflect::PL(). Useful for foreign language column names.
user Username.
require Attempt to require the dynamically defined module, so that extensions defined in files. By default errors from imported modules are suppressed. When you want to debug, use require_warn.
require_warn Warn of import errors when requiring modules.

AUTHOR

Daisuke Maki dmaki@cpan.org

AUTHOR EMERITUS

Sebastian Riedel, sri@oook.de IKEBE Tomohiro, ikebe@edge.co.jp

THANK YOU

Adam Anderson, Andy Grundman, Autrijus Tang, Dan Kubb, David Naughton, Randal Schwartz, Simon Flack and all the others who’ve helped.

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

Class::DBI, Class::DBI::mysql, Class::DBI::Pg, Class::DBI::SQLite, Class::DBI::Loader::Generic, Class::DBI::Loader::mysql, Class::DBI::Loader::Pg, Class::DBI::Loader::SQLite
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 CLASS::DBI::LOADER (3) 2007-03-22

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.