# Request

This component implements callbacks and methods for managing the page request context. With the request context, you can get the request-specific data anywhere in the code rather than passing it to each function that runs during a request.

### Request context <a href="#bkmrk-request-context" id="bkmrk-request-context"></a>

To set a request context value, call the `set_context` method with the key and a value:

```php
hivepress()->request->set_context( 'custom_key', $value );
```

Once the context value is set, you can get it anywhere by calling the `get_context` method:

```php
$value = hivepress()->request->get_context( 'custom_key' );
```

Use the `hivepress/v1/components/request/context` hook that filters the request context array if you need to set some context values on every page load. There are also a few pre-defined context values. For example, you can get the current user object this way:

```php
$user = hivepress()->request->get_user();
```

If the current user is logged in, the `User` [model](https://docs.hivepress.io/developer-docs/framework/models) object is returned. Also, you can get the current page number for paginated queries:

```php
$page = hivepress()->request->get_page_number();
```

### Query variables <a href="#bkmrk-query-variables" id="bkmrk-query-variables"></a>

To get a HivePress-specific [query variable](https://developer.wordpress.org/reference/functions/get_query_var/) (prefixed with `hp_`), call the `get_param` method with the variable name:

```php
$value = hivepress()->request->get_param( 'custom_name' );
```

You can also call the `get_params` method to get an array of all the HivePress query variables.
