| @@ -2,32 +2,51 @@ | |||
| This chart shows how a browser request moves through the MindVisionCode framework and how a response is built and returned. | |||
| ```mermaid | |||
| flowchart TD | |||
| A[Browser Request] --> B[public/index.php] | |||
| B --> C[autoload.php / vendor autoload] | |||
| B --> D[ensureSessionStarted()] | |||
| B --> E[Create App + Router] | |||
| B --> F[Load routes/web.php] | |||
| B --> G[Request::capture()] | |||
| G --> H[Dispatcher::dispatch()] | |||
| H --> I{Route matched?} | |||
| I -- No --> J[Response::notFound()] | |||
| I -- Yes --> K[Route::dispatch()] | |||
| K --> L[App::call()] | |||
| L --> M{Handler type} | |||
| M -- Controller method --> N[Controller action] | |||
| M -- Closure --> O[Route closure] | |||
| N --> P[Repository / ViewModel / Service calls] | |||
| P --> Q[Database::query() / execute()] | |||
| N --> R[view() / json() / redirect()] | |||
| O --> R | |||
| R --> S[Response object] | |||
| J --> S | |||
| H --> T[normalizeResponse()] | |||
| T --> S | |||
| S --> U[Response::send()] | |||
| U --> V[Browser receives HTML / JSON / redirect] | |||
| ```text | |||
| Browser Request | |||
| | | |||
| v | |||
| public/index.php | |||
| |-- loads autoload.php / vendor autoload | |||
| |-- starts the session | |||
| |-- creates App + Router | |||
| |-- loads routes/web.php | |||
| | | |||
| v | |||
| Request::capture() | |||
| | | |||
| v | |||
| Dispatcher::dispatch() | |||
| | | |||
| +--> no route matched ----> Response::notFound() | |||
| | | |||
| +--> route matched -------> Route::dispatch() | |||
| | | |||
| v | |||
| App::call() | |||
| | | |||
| +--> controller method | |||
| | | | |||
| | v | |||
| | Controller action | |||
| | | | |||
| | +--> repository / service / view model | |||
| | +--> Database::query() / execute() | |||
| | +--> view() / json() / redirect() | |||
| | | |||
| +--> closure route | |||
| | | |||
| v | |||
| direct response data | |||
| Dispatcher::normalizeResponse() | |||
| | | |||
| +--> Response object --------> Response::send() | |||
| +--> array ------------------> Response::json() --> Response::send() | |||
| +--> string -----------------> Response::send() | |||
| Final result: | |||
| Browser receives HTML, JSON, or a redirect | |||
| ``` | |||
| ## Response building paths | |||
Powered by TurnKey Linux.