7. Execution Process
The full execution process in Radar looks like this:
Boot -> Setup -> Run -> Middleware
Point by point:
-
A bootstrap phase to build a DI container with custom configuration;
-
The setup phase (this is where you define the URL routes with their action elements, add middleware callables, define custom Action/Routing/Exception/ Sending handlers), etc.
-
The run phase, which executes all middleware callables in turn.
The initial web/index.php
installation queues four middleware decorators:
-
Relay\Middleware\SendingHandler to pass along the inbound request without modification, and send back the outbound response after all other middlware have processed it;
-
Relay\Middleware\ExceptionHandler as a final fallback to catch exceptions;
-
Radar\Adr\Handler\RoutingHandler to determine the Route based on the ServerRequest;
-
Radar\Adr\Handler\ActionHandler to use the Route for the action-domain-responder activity:
-
An Input callable is invoked to examine the incoming HTTP ServerRequest message and extract values to pass along to the core Domain callable.
-
A Domain callable is invoked using those values, and a Payload from the Domain is received in return.
-
A Responder callable is invoked with the Domain output; the Responder then builds the outgoing HTTP Response message.
-
You can prepend, append, or replace these handlers in web/index.php
with your own middleware.