NAME

Kelp::Module::Beam::Wire - Beam::Wire dependency injection container for Kelp

SYNOPSIS

# in config
modules => [qw(Beam::Wire)],
modules_init => {
	'Beam::Wire' => {
		# optional, default is 'app'
		app_service => 'myapp',

		# other config for Beam::Wire constructor
	},
},

# in your application
my $app = MyApp->container->get('myapp');

DESCRIPTION

This is a very straightforward module that registers the container method in your Kelp app, accessing a constructed Beam::Wire object.

METHODS INTRODUCED TO KELP

container

my $beam_wire = $kelp->container;

Returns the Beam::Wire instance.

CONFIGURATION

In addition to special behavior of the configuration fields listed below, all of the configuration from modules_init is fed to Beam::Wire constructor.

app_service

A name of the service which will hold the instance of the Kelp application itself. By default, value 'app' is used.

Since Kelp is pretty much a singleton (unless you use "new_anon" in Kelp), you can introduce this method for easy access to the application instance from the class name:

sub {
	shift->container->get('app')
}

CAVEATS

Accessing the container from the class name won't work if you use "new_anon" in Kelp to instantiate the application.

SEE ALSO

AUTHOR

Bartosz Jarzyna, <bbrtj.pro@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2024 by Bartosz Jarzyna

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