X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCDBICompat.pm;h=74504b6242376d0627b4866a21541caa7e4e7b62;hb=5ef62e9f53f21785ad3879efedb0548dd991d175;hp=a054a4712f6162c9ea7ef838af53a162e31ad84d;hpb=cc8d8678e3f892f6f20e63bd1e61a17d2f2af288;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/CDBICompat.pm b/lib/DBIx/Class/CDBICompat.pm index a054a47..74504b6 100644 --- a/lib/DBIx/Class/CDBICompat.pm +++ b/lib/DBIx/Class/CDBICompat.pm @@ -2,40 +2,164 @@ package DBIx::Class::CDBICompat; use strict; use warnings; +use base qw/DBIx::Class::Core DBIx::Class::DB/; +use Carp::Clan qw/^DBIx::Class/; -use base qw/DBIx::Class::CDBICompat::Constraints - DBIx::Class::CDBICompat::Triggers - DBIx::Class::CDBICompat::GetSet - DBIx::Class::CDBICompat::LiveObjectIndex - DBIx::Class::CDBICompat::AttributeAPI - DBIx::Class::CDBICompat::Stringify - DBIx::Class::CDBICompat::DestroyWarning - DBIx::Class::CDBICompat::Constructor - DBIx::Class::CDBICompat::AccessorMapping - DBIx::Class::CDBICompat::ColumnCase - DBIx::Class::CDBICompat::HasMany - DBIx::Class::CDBICompat::HasA - DBIx::Class::CDBICompat::LazyLoading - DBIx::Class::CDBICompat::AutoUpdate - DBIx::Class::CDBICompat::ColumnGroups - DBIx::Class::CDBICompat::ImaDBI/; - - #DBIx::Class::CDBICompat::ObjIndexStubs +eval { + require Class::Trigger; + require DBIx::ContextualFetch; +}; +croak "Class::Trigger and DBIx::ContextualFetch is required for CDBICompat" if $@; + +__PACKAGE__->load_own_components(qw/ + Constraints + Triggers + ReadOnly + LiveObjectIndex + AttributeAPI + Stringify + DestroyWarning + Constructor + AccessorMapping + ColumnCase + HasA + HasMany + MightHave + Copy + LazyLoading + AutoUpdate + TempColumns + GetSet + Retrieve + Pager + ColumnGroups + ColumnsAsHash + AbstractSearch + ImaDBI + Iterator +/); + + #DBIx::Class::ObjIndexStubs 1; -=head1 NAME +=head1 NAME + +DBIx::Class::CDBICompat - Class::DBI Compatibility layer. -DBIx::Class::CDBICompat - Class::DBI Compatability layer. +=head1 SYNOPSIS + + use base qw/DBIx::Class/; + __PACKAGE__->load_components(qw/CDBICompat Core DB/); =head1 DESCRIPTION -This class just inherits from the various modules that makes -up the Class::DBI compability layer. +DBIx::Class features a fully featured compatibility layer with L +and L to ease transition for existing CDBI users. + +In fact, this class is just a receipe containing all the features emulated. +If you like, you can choose which features to emulate by building your +own class and loading it like this: + + __PACKAGE__->load_own_components(qw/CDBICompat/); + +this will automatically load the features included in My::DB::CDBICompat, +provided it looks something like this: + + package My::DB::CDBICompat; + __PACKAGE__->load_components(qw/ + CDBICompat::ColumnGroups + CDBICompat::Retrieve + CDBICompat::HasA + CDBICompat::HasMany + CDBICompat::MightHave + /); + +=head1 COMPONENTS + +=over 4 + +=item AccessorMapping + +=item AbstractSearch + +Compatibility with Class::DBI::AbstractSearch. + +=item AttributeAPI + +=item AutoUpdate + +Allows you to turn on automatic updates for column values. + +=item ColumnCase + +=item ColumnGroups + +=item Constraints + +=item Constructor + +=item DestroyWarning + +=item GetSet + +=item HasA + +=item HasMany + +=item ImaDBI + +=item LazyLoading + +=item LiveObjectIndex + +The live object index tries to ensure there is only one version of a object +in the perl interpreter. + +=item MightHave + +=item ObjIndexStubs + +=item ReadOnly + +=item Retrieve + +=item Stringify + +=item TempColumns + +=item Triggers + +=item PassThrough + +=back + +=head1 LIMITATIONS + +The following methods and classes are not emulated, maybe in the future. + +=over 4 + +=item Class::DBI::Query + +Deprecated in Class::DBI. + +=item Class::DBI::Column + +Not documented in Class::DBI. CDBICompat's columns() returns a plain string, not an object. + +=item data_type() + +Undocumented CDBI method. + +=item meta_info() + +Undocumented CDBI method. +=back =head1 AUTHORS -Matt S. Trout +Matt S. Trout =head1 LICENSE