Applications

An application is an instance of TApplication or its derived class. It manages modules that provide different functionalities and are loaded when needed. It provides services to end-users. It is the central place to store various parameters used in an application. In a PRADO application, the application instance is the only object that is globally accessible via Prado::getApplication() function call.

Applications are configured via application configurations. They are usually created in entry scripts like the following, require_once('/path/to/prado.php'); $application = new TApplication; $application->run(); where the method run() starts the application to handle user requests.

Directory Organization

A minimal PRADO application contains two files: an entry file and a page template file. They must be organized as follows,

A product PRADO application usually needs more files. It may include an application configuration file named application.xml under the application base path protected. The pages may be organized in directories, some of which may contain page configuration files named config.xml. Fore more details, please see configurations section.

Application Deployment

Deploying a PRADO application mainly involves copying directories. For example, to deploy the above minimal application to another server, follow the following steps,

  1. Copy the content under wwwroot to a Web-accessible directory on the new server.
  2. Modify the entry script file index.php so that it includes correctly the prado.php file.
  3. Remove all content under assets and runtime directories and make sure both directories are writable by the Web server process.

Application Lifecycles

Like page lifecycles, an application also has lifecycles. Application modules can register for the lifecycle events. When the application reaches a particular lifecycle and raises the corresponding event, the registered module methods are invoked automatically. Modules included in the PRADO release, such as TAuthManager, are using this way to accomplish their goals.

The application lifecycles can be depicted as follows,