Overview

Program-flow

The main program-flow can be separated into 3 main phases, called initialization, instanciating and processing. These steps are seen in the ESRender_Application_Interface as methods init(), instanciate() and process().

Phase 1: Initialization

During this phase esrender will sanitize and validate given input-parameters, load required configurations and perform the usual resource allocation like database-connection and logging. After all these steps completed successfully the initialization-phase is done.

Phase 2: Instanciating

The object-instanciation-phase follows right upon the initialization. Here esrender checks the users permissions, retrieves the object's metadata (its properties and usage-informations) and loads the appropriate module to render the requested object. if the requested object was formerly instanciated for the requested repository, application and user, taking the course- and resource-id into account. If no such previous instance can be found, a new one will be created by calling ESRender_Module_Interface::createInstance().

Phase 3: Processing

The term "processing an object" incorporates all neccessary actions to present an object to the requesting user. The object should be instanciated and have all its data available by now, so only display-dependent actions should be taken here.