NAME
CatalystX::Declare::Keyword::Controller - Declare Catalyst Controllers
SYNOPSIS
controller MyApp::Web::Controller::Example
extends MyApp::Web::ControllerBase::CRUD
with MyApp::Web::ControllerRole::Caching {
$CLASS->config(option_name => 'value');
has attr => (is => 'rw', lazy_build => 1);
method _build_attr { 'Hello World' }
action base as '';
final action site, under base {
$ctx->response->body( $self->attr );
}
}
DESCRIPTION
This handler module allows the declaration of Catalyst controllers. The controller
keyword is an extension of the CatalystX::Declare::Keyword::Component, which in turn is an extension of "class" in MooseX::Declare with all the bells and whistles, including extends
, with
, method
and modifier declarations.
In addition to the keywords and features provided by MooseX::Declare, you can also specify your controller's actions declaratively. For the whole truth about the syntax refer to CatalystX::Declare::Keyword::Action.
For controller roles, please see CatalystX::Declare::Keyword::Role. You can extend controllers with the extends
keyword and consume roles via with
as usual.
SUPERCLASSES
METHODS
These methods are implementation details. Unless you are extending or developing CatalystX::Declare, you should not be concerned with them.
add_namespace_customizations
Object->add_namespace_customizations (Object $ctx, Str $package)
This method modifier will initialise the controller with MooseX::MethodAttributes and add the CatalystX::Declare::Controller::RegisterActionRoles and CatalystX::Declare::Controller::DetermineActionClass controller roles before calling the original.
default_superclasses
Str Object->default_superclasses ()
Returns Catalyst::Controller as the default superclass for all declared controllers.
add_with_option_customizations
Object->add_with_option_customizations (
Object $ctx,
Str $package,
ArrayRef $roles,
HashRef $options,
)
This hook method will be called by MooseX::Declare when with
options were encountered. It will load the specified class and apply them to the controller one at a time. This will change in the future, and they will be all applied together.
This method will also add a callback to make the controller immutable to the cleanup code parts unless is mutable
was specified.
auto_make_immutable
Bool Object->auto_make_immutable ()
Returns 0
, indicating that MooseX::Declare should not make this class immutable by itself. We will do that in the "add_with_option_customizations" method ourselves.
default_inner
ArrayRef[Object] Object->default_inner ()
A method modifier around the original. The inner syntax handlers inherited by MooseX::Declare::Syntax::Keyword::Class are extended with instances of the CatalystX::Declare::Keyword::Action handler class for the action
, under
and final
identifiers.
SEE ALSO
- CatalystX::Declare
- CatalystX::Declare::Keyword::Action
- CatalystX::Declare::Keyword::Component
- "class" in MooseX::Declare
AUTHOR
See "AUTHOR" in CatalystX::Declare for author information.
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as perl itself.