Changeset 1771

Show
Ignore:
Timestamp:
04/04/08 06:48:16 (23 months ago)
Author:
fumiakiy
Message:

Use database driver directory for non-cacheable classes. BugId:72003

Location:
branches/release-33/lib/MT
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/release-33/lib/MT/Object.pm

    r1757 r1771  
    220220        $class->add_trigger( pre_save  => get_date_translator(\&ts2db, 1) ); 
    221221        $class->add_trigger( post_load => get_date_translator(\&db2ts, 0) ); 
     222    } 
     223 
     224    if ( exists($props->{cacheable}) && !$props->{cacheable} ) { 
     225        no warnings 'redefine'; 
     226        no strict 'refs'; ## no critic 
     227        *{$class . '::driver'} = sub { $_[0]->dbi_driver(@_) }; 
    222228    } 
    223229 
     
    727733} 
    728734 
     735# ref to the fallback driver for non-cacheable classes 
     736our $DBI_DRIVER; 
     737sub dbi_driver { 
     738    unless ($DBI_DRIVER) { 
     739        my $driver = driver(@_); 
     740        if ( my $fb_driver = $driver->fallback ) { 
     741            $driver = $fb_driver; 
     742        } 
     743        $DBI_DRIVER = $driver; 
     744    } 
     745    return $DBI_DRIVER; 
     746} 
     747 
    729748sub table_name { 
    730749    my $obj = shift; 
  • branches/release-33/lib/MT/ObjectDriverFactory.pm

    r1456 r1771  
    9494        } 
    9595        $MT::Object::DRIVER = undef; 
     96        $MT::Object::DBI_DRIVER = undef; 
    9697    } 
    9798}