NAME

PApp::Package - Application Package Class.


SYNOPSIS


DESCRIPTION

Every application in PApp is represented as a PApp::Package (currently this also defines a unique namespace). This Module defines the PApp::Package and PApp::Module classes.

$ppkg->config([key])
Returns a hash-ref (no options) with the current configuration information, or a specific configuration value for the current application.

Examples:

 my $path = $ppkg->config("path");
 my $cfg = $ppkg->config;
 my $path = $cfg{path};

$ppkg->for_all_packages (callback<papp,path,name>, initial-path)
Run a sub for all packages in a papp.

$ppkg->load_stylesheet($path, [$type, [$domain, $lang]])
Load a PApp::XSLT stylesheet of type $type (either pxml (default unless guessed by the extension) or xml and language $lang into the package and return it. It is planned to do some caching in the future.

$ppkg->refer('callback', [ARGS...]);
This method refer's a callback (see PApp::Callback::refer) defined using the callback element on the package level and returns the resulting coderef.

$ppkg->gen_lexical($value)
(internal). Generate a new lexical to be used in compilation and return it's name (including '$').

$ppkg->insert($name, $module, $conf)
Insert the given package at the current position, optionally setting the default module to $module and $PApp::curconf to $conf. If no name is given (or $name is undeF), the package will be embedded under it's ``natural'' name, otherwise the given name is used to differentiate between different instances of the same package.

The PApp namespace (i.e. <%S> and <%A>) will be shared with the inserted package.

You can (currently) access packages embedded in another module using the $ppkg->{pkg}{packagename} syntax.

This API might not be stable.

$ppkg->embed($name, $module, $conf)
Embed the given package. This function is identical to the insert method above with the exception of the namespace (eg. %S) , which will NOT be shared with the embedding package.

You can (currently) access packages embedded in another module using the $ppkg->{pkg}{packagename} syntax.

This API might not be stable.


SEE ALSO

the PApp manpage.


AUTHOR

 Marc Lehmann <pcg@goof.com>
 http://www.goof.com/pcg/marc/