Skip to content

Start dispatching requestΒΆ

Plugin ID: kernel:request

Available since: 1.0.0

Fires at the very beginning of request dispatching.

Provided tokens

Token Description
[user] The current user.
Alias: current_user
[htmx] Information about the current HTMX request.
[htmx:is_request] Whether the current request was sent by HTMX ("1" or "0").
[htmx:boosted] Whether the current request was boosted by HTMX ("1" or "0").
[htmx:history_restore] Whether the current request is for HTMX history restoration ("1" or "0").
[htmx:target] The identifier of the element the response is targeted at.
[htmx:trigger] The identifier of the element that triggered the request. On Drupal 11 this is the element id, on Drupal 12 and later it is the CSS selector that htmx 4 sends. Prefer "trigger_name", which means the same thing on both.
[htmx:trigger_name] The name attribute of the element that triggered the request, or empty if it has none. This has the same meaning on all supported Drupal versions.
[htmx:source] The CSS selector of the element that triggered the request, for example button[name="first_item"]. Empty on Drupal 11, which does not send this information.
[htmx:request_type] Whether the request targets a full page or a fragment: "full" or "partial". Empty on Drupal 11, which does not send this information.
[htmx:current_url] The URL of the page the request was sent from.
[event] The event.
[event:method] The request method, e.g. "GET" or "POST".
[event:path] The requested path.
[event:query] The query arguments of the request.
[event:headers] The request headers.
[event:content_type] The content type of the request.
[event:content] The content of the POST request.
[event:ip] The client IP.
[event] The event.
[event:machine_name] The machine name of the ECA event.
[session_user] The user account that dispatched the event, regardless if ECA is processing models under a different account. This is only available if ECA is configured to always run under a specific account.

Fires at the very beginning of request dispatching, before any controller is resolved. This is the first event in the HTTP request lifecycle.

Tokens available: [event:method], [event:path], [event:query], [event:headers], [event:content_type], [event:content], [event:ip].

Useful for intercepting requests early (e.g., redirects, access checks, maintenance mode), logging all incoming requests, or setting up request-scoped state.