Merge HasA, HasMany and MightHave into one file, Relationships, for easier
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat.pm
CommitLineData
ea2e61bf 1package DBIx::Class::CDBICompat;
2
3use strict;
4use warnings;
75a23b3e 5use base qw/DBIx::Class::Core DBIx::Class::DB/;
289ba852 6use Carp::Clan qw/^DBIx::Class/;
7
8eval {
9 require Class::Trigger;
10 require DBIx::ContextualFetch;
11};
12croak "Class::Trigger and DBIx::ContextualFetch is required for CDBICompat" if $@;
126042ee 13
55e2d745 14__PACKAGE__->load_own_components(qw/
15 Constraints
16 Triggers
17 ReadOnly
55e2d745 18 LiveObjectIndex
19 AttributeAPI
20 Stringify
21 DestroyWarning
22 Constructor
23 AccessorMapping
24 ColumnCase
a9c8094b 25 Relationships
e60dc79f 26 Copy
55e2d745 27 LazyLoading
28 AutoUpdate
29 TempColumns
e60dc79f 30 GetSet
55e2d745 31 Retrieve
2a21de92 32 Pager
55e2d745 33 ColumnGroups
5ef62e9f 34 ColumnsAsHash
e60dc79f 35 AbstractSearch
36 ImaDBI
37 Iterator
38/);
55e2d745 39
40 #DBIx::Class::ObjIndexStubs
ea2e61bf 411;
34d52be2 42
75d07914 43=head1 NAME
34d52be2 44
880a1a0c 45DBIx::Class::CDBICompat - Class::DBI Compatibility layer.
34d52be2 46
15fe6346 47=head1 SYNOPSIS
48
49 use base qw/DBIx::Class/;
50 __PACKAGE__->load_components(qw/CDBICompat Core DB/);
51
34d52be2 52=head1 DESCRIPTION
53
880a1a0c 54DBIx::Class features a fully featured compatibility layer with L<Class::DBI>
e7d1440f 55and L<Class::DBI::AbstractSearch> to ease transition for existing CDBI users.
56
57In fact, this class is just a receipe containing all the features emulated.
58If you like, you can choose which features to emulate by building your
59own class and loading it like this:
15fe6346 60
61 __PACKAGE__->load_own_components(qw/CDBICompat/);
62
75d07914 63this will automatically load the features included in My::DB::CDBICompat,
15fe6346 64provided it looks something like this:
65
66 package My::DB::CDBICompat;
67 __PACKAGE__->load_components(qw/
68 CDBICompat::ColumnGroups
69 CDBICompat::Retrieve
70 CDBICompat::HasA
71 CDBICompat::HasMany
72 CDBICompat::MightHave
73 /);
74
2053ab2a 75=head1 COMPONENTS
15fe6346 76
77=over 4
78
79=item AccessorMapping
80
e60dc79f 81=item AbstractSearch
82
83Compatibility with Class::DBI::AbstractSearch.
84
15fe6346 85=item AttributeAPI
86
87=item AutoUpdate
88
89Allows you to turn on automatic updates for column values.
90
91=item ColumnCase
92
93=item ColumnGroups
94
95=item Constraints
96
97=item Constructor
98
99=item DestroyWarning
100
101=item GetSet
102
103=item HasA
104
15fe6346 105=item HasMany
106
15fe6346 107=item ImaDBI
108
109=item LazyLoading
110
111=item LiveObjectIndex
112
113The live object index tries to ensure there is only one version of a object
880a1a0c 114in the perl interpreter.
15fe6346 115
116=item MightHave
117
15fe6346 118=item ObjIndexStubs
119
120=item ReadOnly
121
122=item Retrieve
123
124=item Stringify
125
126=item TempColumns
127
128=item Triggers
129
15fe6346 130=item PassThrough
131
132=back
34d52be2 133
e7d1440f 134=head1 LIMITATIONS
135
136The following methods and classes are not emulated, maybe in the future.
137
138=over 4
139
140=item Class::DBI::Query
141
142Deprecated in Class::DBI.
143
144=item Class::DBI::Column
145
146Not documented in Class::DBI. CDBICompat's columns() returns a plain string, not an object.
147
148=item data_type()
149
150Undocumented CDBI method.
151
152=item meta_info()
153
154Undocumented CDBI method.
155
156=back
157
34d52be2 158=head1 AUTHORS
159
daec44b8 160Matt S. Trout <mst@shadowcatsystems.co.uk>
34d52be2 161
162=head1 LICENSE
163
164You may distribute this code under the same terms as Perl itself.
165
166=cut
167