return $c->_filter_component( $comp, @args ) if $comp;
}
+ return
+ if $c->config->{disable_component_resolution_regex_fallback};
+
# This is here so $c->comp( '::M::' ) works
my $query = ref $name ? $name : qr{$name}i;
my %args = %{ $class->config || {} };
-# FIXME: what is this 'MyApp' doing here?
- my @container_classes = qw/MyApp::Container Catalyst::Container/;
+ my @container_classes = ( "${class}::Container", 'Catalyst::Container');
unshift @container_classes, delete $args{container_class} if exists $args{container_class};
my $container_class = Class::MOP::load_first_existing_class(@container_classes);
my $container = $container_class->new( %args, name => "$class" );
-
- $container->add_sub_container(Bread::Board::Container->new( name => $_ )) for qw(model controller view);
$class->container($container);
- my $config = $container->fetch('config')->get;
+ my $config = $container->resolve(service => 'config');
$class->config($config);
$class->finalize_config; # back-compat
}
my @parts = split /::/, $component;
for (@parts) {
- return 'controller' if /c|controller/i;
- return 'model' if /m|model/i;
- return 'view' if /v|view/i;
+ return 'controller' if /^c|controller$/i;
+ return 'model' if /^m|model$/i;
+ return 'view' if /^v|view$/i;
}
}
message => qq/Couldn't instantiate component "$component", "$error"/
);
}
-
- unless (blessed $instance) {
+ elsif (!blessed $instance) {
my $metaclass = Moose::Util::find_meta($component);
my $method_meta = $metaclass->find_method_by_name('COMPONENT');
my $component_method_from = $method_meta->associated_metaclass->name;
qq/Couldn't instantiate component "$component", COMPONENT() method (from $component_method_from) didn't return an object-like value (value was $value)./
);
}
+
return $instance;
}
my $class = ref $proto || $proto;
Class::MOP::load_class( $plugin );
- $class->log->warn( "$plugin inherits from 'Catalyst::Component' - this is decated and will not work in 5.81" )
+ $class->log->warn( "$plugin inherits from 'Catalyst::Component' - this is deprecated and will not work in 5.81" )
if $plugin->isa( 'Catalyst::Component' );
$proto->_plugins->{$plugin} = 1;
unless ($instant) {