The life and death of your application
Thanks to its Autoconfig feature and a few conventions, running your application requires very few lines of code:
<?php namespace ICanBoogie; require 'vendor/autoload.php'; $app = boot(); $app();
1. Pretty common for applications using Composer, the auto-loader is the first thing to run.
boot() helper instantiates the application with its Application class and
autoconfig. After the application has booted, the
ICanBoogie\Application::boot event is fired.
At this point ICanBoogie and its low-level components are configured and booted, the application is
ready to process requests.
3. Finally, the application is ran, which involves the following:
3.1. The HTTP response code is set to 500 because we don't want to return a 200 (Ok) if a fatal error occurs.
3.2. The initial request is obtained and is used to fire the
3.3. The request is executed to obtain a response.
3.4. The response is executed to respond to the request. It should set the HTTP code to the appropriate value.
ICanBoogie\Application::terminate event is fired at which point the application should be
During the execution of the application, the following events are fired:
The application is configured
ICanBoogie\Application::configure event of class ConfigureEvent is fired once the
application is configured. Event hooks may use this event to alter the application configuration or
The application has booted
ICanBoogie\Application::boot event of class BootEvent is fired once the application has
booted. Event hooks may use this event to bootstrap components before the application is ran.
The application is running
ICanBoogie\Application::run event of class RunEvent is fired when the application is
running. Event hooks may use this event to alter various states of the application, starting with
the initial request.
The application is terminated
ICanBoogie\Application::terminate event of class TerminateEvent is fired after the
response to the initial request was sent and the application is about to be terminated. Event hooks
may use this event to cleanup loose ends.
Cache must be cleared
clear_cache event of class ClearCacheEvent is fired when the various caches of the
application must be cleared. Event hooks may use this event to clear their own cache. For instance,
ICanBoogie clears its configurations cache when this event is fired.