- add ResultSet to see also in main POD
[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.04001';
10
11 1;
12
13 =head1 NAME 
14
15 DBIx::Class - Extensible and flexible object <-> relational mapper.
16
17 =head1 SYNOPSIS
18
19 =head1 DESCRIPTION
20
21 This is an SQL to OO mapper, inspired by the L<Class::DBI> framework, 
22 and meant to support compability with it, while restructuring the 
23 internals and making it possible to support some new features like 
24 self-joins, distinct, group bys and more.
25
26 This project is still at an early stage, so the maintainers don't make
27 any absolute promise that full backwards-compatibility will be supported;
28 however, if we can without compromising the improvements we're trying to
29 make, we will, and any non-compatible changes will merit a full justification
30 on the mailing list and a CPAN developer release for people to test against.
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 L<Class::DBI>, and want an easy and fast way of migrating to
45 DBIx::Class, take a look at L<DBIx::Class::CDBICompat>.
46
47 There are two ways of using DBIx::Class, the "simple" way and the "schema" way.
48 The "simple" way of using DBIx::Class needs less classes than the "schema"
49 way but doesn't give you the ability to easily use different database connections.
50
51 Some examples where different database connections are useful are:
52
53 different users with different rights
54 different databases with the same schema.
55
56 =head2 Simple
57
58 First you need to create a base class which all other classes will inherit from.
59 See L<DBIx::Class::DB> for information on how to do this.
60
61 Then you need to create a class for every table you want to use with DBIx::Class.
62 See L<DBIx::Class::Table> for information on how to do this.
63
64 =head2 Schema
65
66 With this approach, the table classes inherit directly from DBIx::Class::Core,
67 although it might be a good idea to create a "parent" class for all table
68 classes that inherits from DBIx::Class::Core and adds additional methods
69 needed by all table classes, e.g. reading a config file or loading auto primary
70 key support.
71
72 Look at L<DBIx::Class::Schema> for information on how to do this.
73
74 If you need more help, check out the introduction in the 
75 manual below.
76
77 =head1 SEE ALSO
78
79 =head2 L<DBIx::Class::Core> - DBIC Core Classes
80
81 =head2 L<DBIx::Class::Manual> - User's manual
82
83 =head2 L<DBIx::Class::CDBICompat> - L<Class::DBI> Compat layer
84
85 =head2 L<DBIx::Class::DB> - database-level methods
86
87 =head2 L<DBIx::Class::Table> - table-level methods
88
89 =head2 L<DBIx::Class::Row> - row-level methods
90
91 =head2 L<DBIx::Class::PK> - primary key methods
92
93 =head2 L<DBIx::Class::ResultSet> - search result-set methods
94
95 =head2 L<DBIx::Class::Relationship> - relationships between tables
96
97 =head1 AUTHOR
98
99 Matt S. Trout <mst@shadowcatsystems.co.uk>
100
101 =head1 CONTRIBUTORS
102
103 Andy Grundman <andy@hybridized.org>
104
105 Brian Cassidy <bricas@cpan.org>
106
107 Dan Kubb <dan.kubb-cpan@onautopilot.com>
108
109 Dan Sully <daniel@cpan.org>
110
111 David Kamholz <dkamholz@cpan.org>
112
113 Jules Bean
114
115 Marcus Ramberg <mramberg@cpan.org>
116
117 Paul Makepeace
118
119 =head1 LICENSE
120
121 You may distribute this code under the same terms as Perl itself.
122
123 =cut
124