GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Class::DBI::BaseDSN(3) User Contributed Perl Documentation Class::DBI::BaseDSN(3)

Class::DBI::BaseDSN - DSN sensitive base class

  package My::DBI;
  use base 'Class::DBI::BaseDSN'; # we'll decide later what our real
                                   # parent class will be
  __PACKAGE__->set_db( Main => $ENV{TESTING} ? @test_dsn : @real_dsn );

Class::DBI::BaseDSN acts as a placeholder for a base class which will be switched for a specific Class::DBI extension when you specify the dsn of the database to connect to.

For example in this case, the Class::DBI::BaseDSN will replace itself with Class::DBI::mysql when the "set_db" call is executed.

 package Example::DBI;
 use base 'Class::DBI::BaseDSN';
 __PACKAGE__->set_db( Main => 'dbi:mysql:example', 'user', 'pass' );

Since this happens at runtime you could pass the dsn as a variable and so have it use a completely different extension automatically. This is especially useful for testing, or for applications where dsn may be a configuration option.

If there is no matching extension found, Class::DBI::BaseDSN replaces itself with Class::DBI.

Richard Clamp <richardc@unixbeard.net>

Thanks go to Michael Schwern for a snippet to fake out caller, and for hashing out some of the finer points of the approach on the cdbi-talk list.

Class::DBI
2022-04-08 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.