The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

PApp::Application - a class representing a single mountable application

SYNOPSIS

   use PApp::Application;

   # you don't normally use this class directly

DESCRIPTION

This class is the base class for all mountable PApp applications.

$papp = new PApp::Application args...
$ppkg->preprocess

Parse the package (including all subpackages) and store the configuration and code data in the PApp Package Cache(tm) for use by load_config and load_code.

$papp->mount

Do necessary bookkeeping to mount an application.

$papp->event("event")

Distributes the event to all subpackages/submodules.

$papp->load

Make sure the application is loaded (i.e. in-memory)

$papp->surl(surl-args)

Just like PApp::surl and PApp::slink, except that it also jumps into the application (i.e. it switches applications). surl will act as if you were in the main module of the application.

$changed = $papp->check_deps

Check dependencies and unload application if any dependencies have changed.

register_file($name, %attrs)

Register an additional file (for dependency tracking and i18n scanning). There should never be a need to use this function. Example:

  $papp->register_file("/etc/issue", lang => "en", domain => "mydomain");
%files = $papp->files([include-imports])

Return a hash of path => { info... } pairs delivering information about all files of the application. If include-imports is true, also includes all files form imports.

$papp->run

"Run" the application, i.e. find the current package & module and execute it.

$papp->uncaught_exception ($exception, $callback)

This method is called when a surl callback dies ($callback true) or another exception is caught by papp ($callback false).This method is free to call abort_to or other functions. If it returns, the exception will be ignored.

The default implementation just rethrows.

$papp->new_package(same arguments as PApp::Package->new)

Creates a new PApp::Package that belongs to this application.

$ppkg->for_all_packages (callback<papp,path,name>, initial-path)

Run a sub for all packages in a papp.

PApp::Application::Agni

There is another Application type, Agni, which allows you to directly mount a specific agni object. To do this, you have to specify the application path like this:

  PApp::Application::Agni/path/gid

e.g., to mount the admin application in root/agni/, use this:

  PApp::Application::Agni/root/agni/4295054263
$papp->uncaught_exception

The Agni-specific version of this method calls the uncaught_exception method of the mounted application.

SEE ALSO

PApp.

AUTHOR

 Marc Lehmann <schmorp@schmorp.de>
 http://home.schmorp.de/

1 POD Error

The following errors were encountered while parsing the POD:

Around line 572:

You forgot a '=back' before '=head1'