Shoved Class::Data::Inheritable into DBIx::Class, more stuff works now
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class.pm
1 package DBIx::Class;
2
3 use strict;
4 use warnings;
5
6 use vars qw($VERSION);
7 use base qw/DBIx::Class::Componentised Class::Data::Inheritable/;
8
9 $VERSION = '0.03004';
10
11
12 1;
13
14 =head1 NAME 
15
16 DBIx::Class - Extensible and flexible object <-> relational mapper.
17
18 =head1 SYNOPSIS
19
20 =head1 DESCRIPTION
21
22 This is a sql to oop mapper, inspired by the L<Class::DBI> framework, 
23 and meant to support compability with it, while restructuring the 
24 insides, and making it possible to support some new features like 
25 self-joins, distinct, group bys and more.
26
27 It's currently considered EXPERIMENTAL - bring this near a production
28 database at your own risk! The API is *not* fixed yet, although most of
29 the primitives should be good for the future and any API changes will be
30 posted to the mailing list before they're committed.
31
32 The community can be found via -
33
34   Mailing list: http://lists.rawmode.org/mailman/listinfo/dbix-class/
35
36   SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
37
38   Wiki: http://dbix-class.shadowcatsystems.co.uk/
39
40   IRC: irc.perl.org#dbix-class
41
42 =head1 QUICKSTART
43
44 If you're using Class::DBI, and want an easy and fast way of migrating to
45 DBIx::Class look at L<DBIx::Class::CDBICompat>.
46
47 There are two ways of using DBIx::Class, the 'simple' and the 'schema' one.
48
49 The 'simple' way of using DBIx::Class needs less classes than the 'schema'
50 way but doesn't give you the ability to use different database connections.
51
52 Some examples where different database connections are useful are:
53
54 different users with different rights
55 different databases with the same schema.
56
57 =head1 Simple
58
59 First you need to create a base class all other classes inherit from.
60
61 Look at L<DBIx::Class::DB> how to do this
62
63 Next you need to create a class for every table you want to use with
64 DBIx::Class.
65
66 Look at L<DBIx::Class::Table> how to do this.
67
68
69 =head2 Schema
70
71 With this approach the table classes inherit directly from DBIx::Class::Core,
72 although it might be a good idea to create a 'parent' class for all table
73 classes which inherits from DBIx::Class::Core and adds additional methods
74 needed by all table classes, e.g. reading a config file, loading auto primary
75 key support.
76
77 Look at L<DBIx::Class::Schema> how to do this.
78
79 If you need more hand-holding, check out the introduction in the 
80 manual below.
81
82 =head1 SEE ALSO
83
84 =over 4
85
86 =item L<DBIx::Class::Core> - DBIC Core Classes
87
88 =item L<DBIx::Class::CDBICompat> - L<Class::DBI> Compat layer.
89
90 =item L<DBIx::Class::Manual> - User's manual.
91
92 =back
93
94 =head1 AUTHOR
95
96 Matt S. Trout <mst@shadowcatsystems.co.uk>
97
98 =head1 CONTRIBUTORS
99
100 Andy Grundman <andy@hybridized.org>
101
102 Brian Cassidy <bricas@cpan.org>
103
104 Dan Kubb <dan.kubb-cpan@onautopilot.com>
105
106 Dan Sully <daniel@cpan.org>
107
108 davekam
109
110 Marcus Ramberg <mramberg@cpan.org>
111
112 =head1 LICENSE
113
114 You may distribute this code under the same terms as Perl itself.
115
116 =cut
117