From: Matt S Trout Date: Thu, 18 May 2006 22:15:03 +0000 (+0000) Subject: Updated docs for Catalyst::Component X-Git-Tag: 5.7099_04~587 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=commitdiff_plain;h=825dbf857c7bf90368937efaaeadec92d91fd990;hp=951d8f8baa9d3b9c9d934503277ac287e5f6188e Updated docs for Catalyst::Component --- diff --git a/Changes b/Changes index 366ce5b..88f390c 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,6 @@ This file documents the revision history for Perl extension Catalyst. + - Updated docs for Catalyst::Component - Separated execute and dispatch on Catalyst::Action - cleaned up logging and debug output - minor doc fixes diff --git a/lib/Catalyst/Component.pm b/lib/Catalyst/Component.pm index 07202d3..4b12fda 100644 --- a/lib/Catalyst/Component.pm +++ b/lib/Catalyst/Component.pm @@ -47,23 +47,12 @@ This is the universal base class for Catalyst components It provides you with a generic new() for instantiation through Catalyst's component loader with config() support and a process() method placeholder. -=head1 ACCEPT_CONTEXT - -Catalyst components are normally initalized during server startup, either -as a Class or a Instance. However, some compoents require information about -the current request. To do so, they can implement an ACCEPT_CONTEXT method. - -The ACCEPT_CONTEXT method is called on the component as initalized at startup, -with the current $c object, and should return itself. It can do whatever it -likes with $c, such as extracting a path to use in the component or something -similar. - -This call happens for every $c->comp/controller/model/view call. - - =head1 METHODS -=head2 new($c) +=head2 new($c, $arguments) + +Called by COMPONENT to instantiate the component; should return an object +to be stored in the application's component hash. =cut @@ -76,7 +65,15 @@ sub new { return $self->NEXT::new( { %{ $self->config }, %{$arguments} } ); } -=head2 COMPONENT($c) +=head2 COMPONENT($c, $arguments) + +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 $c and any config entry on the application for this component (for example, +in the case of MyApp::Controller::Foo this would be +MyApp->config->{'Controller::Foo'}). The arguments are expected to be a hashref +and are merged with the __PACKAGE__->config hashref before calling ->new to +instantiate the component. =cut @@ -135,6 +132,20 @@ sub process { . " did not override Catalyst::Component::process" ); } +=head1 OPTIONAL METHODS + +=head2 ACCEPT_CONTEXT($c, @args) + +Catalyst components are normally initalized during server startup, either +as a Class or a Instance. However, some components require information about +the current request. To do so, they can implement an ACCEPT_CONTEXT method. + +If this method is present, it is called during $c->comp/controller/model/view +with the current $c and any additional args (e.g. $c->model('Foo', qw/bar baz/) +would cause your MyApp::Model::Foo instance's ACCEPT_CONTEXT to be called with +($c, 'bar', 'baz')) and the return value of this method is returned to the +calling code in the application rather than the component itself. + =head1 SEE ALSO L, L, L, L.