NAME
CatalystX::Imports::Vars - Import application variables
BASE CLASSES
SYNOPSIS
package
MyApp::Controller::Users;
# use Vars => 1; for just $self, $ctx and @args
Vars
=> {
Stash
=> [
qw( $user $user_rs $template )
],
Session
=> [
qw( $user_id )
] };
sub
list: Local {
$template
=
'list.tt'
;
$user_rs
=
$ctx
->model(
'User'
)->search;
}
sub
view: Local {
$template
=
'view.tt'
;
$user
=
$ctx
->model(
'User'
)->find(
$args
[0]);
}
sub
me: Local {
$ctx
->forward(
'view'
, [
$user_id
]);
}
1;
DESCRIPTION
This module allows you to bind various package vars in your controller to specific places in the framework. By default, the variables $self
, $ctx
and @args
are exported. They have the same value as if set via
my
(
$self
,
$ctx
,
@args
) =
@_
;
in your action.
You can use a hash reference to specify what variables you want to bind to their respective fields in the session, flash or stash, as demonstrated in the "SYNOPSIS".
METHODS
export_into
Exports requested variables and intalls a wrapper to fill them with their respective values if needed.
export_var_into
Installs a variable into a package.
_destruct_var_name
Takes a variable name and returns it's type (scalar
, array
or hash
) and it's symbol parts.
DIAGNOSTICS
Invalid identifier found: 'foo'
You asked for the import of the var 'foo', but it is not a valid variable identifier. E.g.: '@foo', '%foo' and '$foo' are valid, but '-foo', ':foo' and 'foo' are not.
Either a 1 or a hash reference expected as argument for Vars
You can import just the default variables ($self, $ctx and @args) by specifying a 1
as a parameter ...
... or you can give it a hash reference and tell it what you want additionally ...
... but you specified something else as parameter.
SEE ALSO
Catalyst, CatalystX::Imports, CatalystX::Imports::Context
AUTHOR AND COPYRIGHT
Robert 'phaylon' Sedlacek <rs@474.at>
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as perl itself.