HTTP Application Workflow
Table of Contents
Introduction
Opulence uses a single point of entry for all pages. In other words, all HTTP requests get redirected through index.php, which instantiates the application and handles the request. Here's a breakdown of the workflow of a typical Opulence HTTP application:
Workflow
- User requests http://www.example.com/users/23/profile
 - Your virtual host redirects the request through http://www.example.com/index.php
 - bootstrap/http/start.php is loaded, which instantiates an 
Applicationobject - Various configs are read, and bootstrappers are registered
 - Pre-start tasks are run
- Bootstrappers' bindings are registered by the bootstrapper 
Dispatcher - Bootstrappers are run by the bootstrapper 
Dispatcher 
 - Bootstrappers' bindings are registered by the bootstrapper 
 - The application is started
 - An HTTP 
Kernelis instantiated, which converts the HTTP request into a response- The path "/users/23/profile" is detected by the request
 
 - All global middleware are run
 - The 
Routerfinds a route that matches the request- The user Id 23 is extracted from the URL here
 
 - The 
Dispatcherruns any middleware registered specifically to this route - The 
Dispatcherdispatches the request to theController- The user Id is injected into the controller method
 
 - The 
Controllerprocesses data from the request, updates/retrieves any appropriate models, and creates aResponse - The 
Responseis sent back to the user - Post-start tasks are run
 - Pre-shutdown tasks are run
 - The application is shut down
 - Post-shutdown tasks are run