NAME

App::Framework::Feature - Application feature

SYNOPSIS

Features are accessed via the App::Framework object, for example:

use App::Framework '+Config' ;

App::Framework::Feature is to be derived from and cannot be accessed directly.

DESCRIPTION

Provides the base object from which all features must be derived.

DOCUMENTATION TO BE COMPLETED

FIELDS

The following fields should be defined either in the call to 'new()', as part of a 'set()' call, or called by their accessor method (which is the same name as the field):

app - Parent application

Set by App::Framework as a reference to the application object. If this is not set, then the feature will skip any application-specific logic (allowing a feature to be used in the user part of an application as a stand alone object).

registered - list of registered application functions

ARRAY ref to list of functions that this feature wants to register in the application. When a registered function is called by the framework, then the feature's method (of the same name) is also called.

Function name is of the form <name>_entry (called at the start of <name>) or <name>_exit (called at the end of <name>)

name - feature name

Set to the feature name (by the App::Framework). This is the name used by the application to access the feature

CONSTRUCTOR

new([%args])

Create a new feature.

The %args are specified as they would be in the set method.

CLASS METHODS

init_class([%args])

Initialises the object class variables.

allowed_class_instance()

Returns 0 since this class can not have a class instance object

OBJECT DATA METHODS

OBJECT METHODS

register_app()

Registers this feature with the parent application framework (if specified)

access([%args])

Provides access to the feature. This default method is equivalent to:

$feature->set(%args);
return $feature ;

Derived features may override this method to return object data, execute code etc.

DIAGNOSTICS

Setting the debug flag to level 1 prints out (to STDOUT) some debug messages, setting it to level 2 prints out more verbose messages.

AUTHOR

Steve Price <sdprice at cpan.org>

BUGS

None that I know of!