Put prepare_connection back as Engine::PSGI uses it
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Component.pm
index 2fd7181..101f29c 100644 (file)
@@ -53,7 +53,7 @@ Catalyst::Component - Catalyst Component Base Class
 This is the universal base class for Catalyst components
 (Model/View/Controller).
 
-It provides you with a generic new() for instantiation through Catalyst's
+It provides you with a generic new() for component construction through Catalyst's
 component loader with config() support and a process() method placeholder.
 
 =cut
@@ -127,7 +127,7 @@ sub config {
         # TODO maybe this should be a ClassData option?
         my $class = blessed($self) || $self;
         my $meta = Class::MOP::get_metaclass_by_name($class);
-        unless ($meta->has_package_symbol('$_config')) {
+        unless (${ $meta->get_or_add_package_symbol('$_config') }) {
             # Call merge_hashes to ensure we deep copy the parent
             # config onto the subclass
             $self->_config( Catalyst::Utils::merge_hashes($config, {}) );
@@ -170,7 +170,7 @@ to be stored in the application's component hash.
 
 C<< my $component_instance = $component->COMPONENT($app, $arguments); >>
 
-If this method is present (as it is on all Catalyst::Component subclasses,
+If this method is present (as it is on all Catalyst::Component subclasses),
 it is called by Catalyst during setup_components with the application class
 as $app and any config entry on the application for this component (for example,
 in the case of MyApp::Controller::Foo this would be
@@ -180,7 +180,7 @@ The arguments are expected to be a hashref and are merged with the
 C<< __PACKAGE__->config >> hashref before calling C<< ->new >>
 to instantiate the component.
 
-You can override it in your components to do custom instantiation, using
+You can override it in your components to do custom construction, using
 something like this:
 
   sub COMPONENT {
@@ -200,6 +200,12 @@ key value pair, or you can specify a hashref. In either case the keys
 will be merged with any existing config settings. Each component in
 a Catalyst application has its own config hash.
 
+The component's config hash is merged with any config entry on the
+application for this component and passed to C<new()> (as mentioned
+above at L</COMPONENT>). The common practice to access the merged
+config is to use a Moose attribute for each config entry on the
+receiving component.
+
 =head2 $c->process()
 
 This is the default method called on a Catalyst component in the dispatcher.