View on
MetaCPAN
search.cpan.org is shutting down
For details read Perl NOC. After June 25th this page will redirect to MetaCPAN.org
Torsten Förtsch > Apache-DBI-Cache > Apache::DBI::Cache::ImaDBI

Download:
Apache-DBI-Cache-0.08.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  4
Open  1
View/Report Bugs
Module Version: 0.07   Source  

NAME ^

Apache::DBI::Cache::ImaDBI - make Apache::DBI::Cache work with Class::DBI

SYNOPSIS ^

 In your httpd.conf:
  <Perl>
  use Apache::DBI::Cache ...;
  use Apache::DBI::Cache::ImaDBI patch=>'Ima::DBI';
  </Perl>

 Then use Class::DBI in your modules as usual.

 or

 In your httpd.conf:
  <Perl>
  use Apache::DBI::Cache ...;
  use Apache::DBI::Cache::ImaDBI patch=>'My::Class';
  </Perl>

  package My::Class;
  use base qw/Class::DBI/;

 or

 In your httpd.conf:
  <Perl>
  use Apache::DBI::Cache ...;
  </Perl>

  package My::Class;
  use base qw/Apache::DBI::Cache::ImaDBI Class::DBI/;

DESCRIPTION ^

This module provides one method that is designed to override the way Ima::DBI caches its DBI handle. Normally the handle is connected once and saved in a closure. With Apache::DBI::Cache::ImaDBI the handle is cached by means of Apache::DBI::Cache. Once per Apache request cycle if a class is used for this request a handle is obtained from the cache.

This means:

USAGE ^

Normally your classes are designed to work not only with Apache::DBI::Cache. Hence, your classes don't know also about Apache::DBI::Cache::ImaDBI. But your classes inherit from Class::DBI and Class::DBI inherits from Ima::DBI.

To get our special method called Apache::DBI::Cache::ImaDBI is used in one of these ways:

 use Apache::DBI::Cache::ImaDBI patch=>1;

  or

 use Apache::DBI::Cache::ImaDBI patch=>'Ima::DBI';

  or

 use Apache::DBI::Cache::ImaDBI patch=>'Class::DBI';

  or

 use Apache::DBI::Cache::ImaDBI patch=>qw[My::Class1 My::Class2];

The first 2 usages are exactly the same. Our special method is inserted directly into Ima::DBI. Thus, all classes based on Ima::DBI inherit it.

The 3rd usage inserts our method into Class::DBI. Thus, all classes based on it inherit our method but classes that are base directly on Ima::DBI do not.

In the 4th case our method is inserted into individual classes only.

Another way to use Apache::DBI::Cache::ImaDBI is by inheriting from it:

 package My::Class;
 use base qw/Apache::DBI::Cache::ImaDBI Class::DBI/;

  or

 package My::Class;
 use base qw/Apache::DBI::Cache::ImaDBI Ima::DBI/;

Here it is necessary that Apache::DBI::Cache::ImaDBI cames before Class::DBI or Ima::DBI.

I think that is not the preferred way because it requires source code modification of your classes.

SEE ALSO ^

Apache::DBI::Cache
Class::DBI
Ima::DBI

AUTHOR ^

Torsten Foertsch, <torsten.foertsch@gmx.net>

COPYRIGHT AND LICENSE ^

Copyright (C) 2006 by Torsten Foertsch

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: