Dancer2-Session-DatabasePlugin
view release on metacpan or search on metacpan
lib/Dancer2/Plugin/SessionDatabase.pm view on Meta::CPAN
package Dancer2::Plugin::SessionDatabase;
use Modern::Perl;
use Dancer2::Plugin;
use Carp qw(croak);
use Data::Dumper;
=head1 NAME
Dancer2::Plugin::SessionDatabase - Hook Loader For Dancer2::Session::DatabasePlugin
=head1 DESCRIPTION
Hook loader for Dancer2::Session::DatabasePlugin.
=head2 Plugin options
In your config.yml
plugins:
SessionDatabase:
# when set to true this forces a call to the database plugin
always_clean: 1
=cut
has always_clean=>(
is=>'rw',
default=>sub { 1 },
);
our $DBH;
sub reset_session {
%{$Dancer2::Session::DatabasePlugin::CACHE}=();
$DBH=undef;
}
sub DBC {
my ($self,$conn)=@_;
if($self->always_clean) {
$self->reset_session;
}
my $db=$self->find_plugin('Dancer2::Plugin::Database');
my $dbh=$db->database($conn);
if(defined($DBH) && $dbh ne $DBH) {
%{$Dancer2::Session::DatabasePlugin::CACHE}=();
}
return $DBH=$dbh;
}
# This method runs after the new constructor
sub BUILD {
my ($self)=@_;
while(my ($method,$value)=each %{$self->config}) {
$self->$method($value);
( run in 0.658 second using v1.01-cache-2.11-cpan-39bf76dae61 )