Bread::Board::Declare::Meta::Role::Attribute::Container - attribute metarole for
container attributes in Bread::Board::Declare
This attribute trait indicates that the attribute (in a Bread::Board::Declare
class) contains a subcontainer rather than a service. It must be specified
explicitly (or else a service that happens to return a container will be
created):
has attr => (
traits => ['Container'],
is => 'ro',
isa => 'Bread::Board::Container',
);
Container attributes (unlike service attributes) can have defaults
and builders, allowing you to also define subcontainers inline when desired,
as in:
has attr => (
traits => ['Container'],
is => 'ro',
isa => 'Bread::Board::Container',
default => sub {
container Foo => as {
service Bar => 'BAR';
};
}
);
If no default or builder is supplied, the type constraint will be used to create
a container instance automatically (using a temporary ConstructorInjection
service). This is the dependency specification to use for that temporary
service.
Jesse Luehrs <doy@tozt.net>
This software is Copyright (c) 2014 by Jesse Luehrs.
This is free software, licensed under:
The MIT (X11) License