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