The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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)