86e33a512b0fc9fe2eac4a07e3a47d4149aa0e47
[catagits/Catalyst-Model-DBIC-Schema.git] / README
1 NAME
2     Catalyst::Model::DBIC::Schema - DBIx::Class::Schema Model Class
3
4 SYNOPSIS
5         package MyApp::Model::Foo;
6         use strict;
7         use base 'Catalyst::Model::DBIC::Schema';
8
9         __PACKAGE__->config(
10             schema_class => 'Foo::SchemaClass',
11             connect_info => [ 'dbi:Pg:dbname=foodb',
12                               'postgres',
13                               '',
14                               { AutoCommit => 1 },
15                             ],
16         );
17
18         1;
19
20         # In controller code:
21
22         # ->schema To access schema methods:
23         $c->model('Foo')->schema->source(...);
24
25         # certain ->schema methods (source, resultset, class) have shortcuts
26         $c->model('Foo')->source(...);
27         $c->model('Foo')->resultset(...);
28         $c->model('Foo')->class(...);
29
30         # For resultsets, there's an even quicker shortcut:
31         $c->model('Foo::Bar')
32         # is the same as $c->model('Foo')->resultset('Bar')
33
34         # To get the composed schema for making new connections:
35         my $newconn = $c->model('Foo')->composed_schema->connect(...);
36
37         # Or the same thing via a convenience shortcut:
38         my $newconn = $c->model('Foo')->connect(...);
39
40         # or, if your schema works on different storage drivers:
41         my $newconn = $c->model('Foo')->composed_schema->clone();
42         $newconn->storage_type('::LDAP');
43         $newconn->connect(...);
44
45         # and again, a convenience shortcut
46         my $newconn = $c->model('Foo')->clone();
47         $newconn->storage_type('::LDAP');
48         $newconn->connect(...);
49
50 DESCRIPTION
51     This is a Catalyst Model for DBIx::Class::Schema-based Models.
52
53 CONFIG PARAMETERS
54     schema_class
55         This is the classname of your DBIx::Class::Schema Schema. It needs
56         to be findable in @INC, but it does not need to be underneath
57         "Catalyst::Model::". This parameter is required.
58
59     connect_info
60         This is an arrayref of connection parameters, which are specific to
61         your "storage_type". For "::DBI", which is the only supported
62         "storage_type" in DBIx::Class at the time of this writing, the 4
63         parameters are your dsn, username, password, and connect options
64         hashref.
65
66         This is not required if "schema_class" already has connection
67         information defined in itself (which would be the case for a Schema
68         defined by DBIx::Class::Schema::Loader, for instance).
69
70     storage_type
71         Allows the use of a different "storage_type" than what is set in
72         your "schema_class" (which in turn defaults to "::DBI" if not set in
73         current DBIx::Class). Completely optional, and probably unneccesary
74         for most people, until other storage backends become available for
75         DBIx::Class.
76
77 METHODS
78     new Instantiates the Model based on the above-documented ->config
79         parameters. The only required parameter is "schema_class".
80         "connect_info" is required in the case that "schema_class" does not
81         already have connection information defined for it.
82
83     schema
84         Accessor which returns the connected schema being used by the this
85         model. There are already direct shortcuts on the model class itself
86         for schema->resultset, schema->source, and schema->class.
87
88     composed_schema
89         Accessor which returns the composed schema, which has no connection
90         info, which was used in constructing the "schema" above. Useful for
91         creating new connections based on the same schema/model. There are
92         direct shortcuts from the model object for composed_schema->clone
93         and composed_schema->connect
94
95     clone
96         Shortcut for ->composed_schema->clone
97
98     connect
99         Shortcut for ->composed_schema->connect
100
101     source
102         Shortcut for ->schema->source
103
104     class
105         Shortcut for ->schema->class
106
107     resultset
108         Shortcut for ->schema->resultset
109
110 SEE ALSO
111     Catalyst, DBIx::Class, DBIx::Class::Schema, DBIx::Class::Schema::Loader
112
113 AUTHOR
114     Brandon L Black, "blblack@gmail.com"
115
116 COPYRIGHT
117     This program is free software, you can redistribute it and/or modify it
118     under the same terms as Perl itself.
119