NAME

Bread::Board::LifeCycle::Session - A short-lived singleton for Bread::Board

VERSION

version v0.900.1

SYNOPSIS

use Bread::Board;

my $c = container 'Reports' => as {
    service generic_report => (
        class     => 'Report',
        lifecycle => 'Session',
    );
};

sub dispatch {
    # ... dispatch code ...

    my $services_flushed = $c->flush_session_instances;
}

DESCRIPTION

This implements a short-term "Session" lifecycle for Bread::Board. Services with this lifecycle will exist as a singleton until they are flushed with the flush_session_instances method. The idea is that this method would be called at the end of a web request, but a "session" could be defined as any sort of short-term cycle.

The Bread::Board::Container::Role::WithSessions role is applied to all containers that exist in or around the service.

This module is similar to Bread::Board::LifeCycle::Request, but has no connections to OX.

ACKNOWLEDGEMENTS

Thanks to Grant Street Group http://www.grantstreet.com for funding development of this code.

Thanks to Steve Grazzini (<GRAZZ@CPAN.org>) for discussion of the concept.

AUTHOR

Grant Street Group <developers@grantstreet.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 - 2020 by Grant Street Group.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)