dotkernel/dot-response-header

Dotkernel middleware for setting custom response headers.

Maintainers

👁 dotkernel

Package info

github.com/dotkernel/dot-response-header

pkg:composer/dotkernel/dot-response-header

Statistics

Installs: 27 133

Dependents: 2

Suggesters: 0

Stars: 3

Open Issues: 1

3.6.0 2025-10-30 15:39 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 40dea25f5c4f0f2762644d151fb5a4cb055a24fe

  • Dotkernel Team <team.woop@dotkernel.com>

apimiddlewareheadersdotkernellaminasmezzio

This package is auto-updated.

Last update: 2026-06-29 02:25:21 UTC


README

dot-response-header is Dotkernel's middleware for setting and overwriting custom response headers.

Documentation

Documentation is available at: https://docs.dotkernel.org/dot-response-header/.

Badges

👁 OSS Lifecycle
👁 PHP from Packagist (specify version)

👁 GitHub issues
👁 GitHub forks
👁 GitHub stars
👁 GitHub license

👁 Build Static
👁 codecov
👁 PHPStan

Requirements

  • PHP: 8.2, 8.3, 8.4 or 8.5

Installation

Run the following command in your project root directory:

composer require dotkernel/dot-response-header

Next, register the package's ConfigProvider to your application config.

Dot\ResponseHeader\ConfigProvider::class,

Make sure to register the package under the // DK packages section.

After registering the package, add it to the middleware stack in config/pipeline.php after $app->pipe(RouteMiddleware::class);

$app->pipe(RouteMiddleware::class);
$app->pipe(\Dot\ResponseHeader\Middleware\ResponseHeaderMiddleware::class);

Create a new file response-header.global.php in config/autoload with the below configuration array:

<?php

return [
 'dot_response_headers' => [
 '*' => [
 'CustomHeader1' => [
 'value' => 'CustomHeader1-Value',
 'overwrite' => true,
 ],
 'CustomHeader2' => [
 'value' => 'CustomHeader2-Value',
 'overwrite' => false,
 ],
 ],
 'home' => [
 'CustomHeader' => [
 'value' => 'header3',
 ],
 ],
 'login' => [
 'LoginHeader' => [
 'value' => 'LoginHeader-Value',
 'overwrite' => false
 ],
 ],
 ],
];

Because headers are matched with route names, we can have custom response headers for every request, by defining new headers under the * key.

All headers under * will be set for every response.

To add response headers for a specific set of routes, define a new array using the route name as the array key.

Example:

'dot_response_headers' => [
 'user' => [
 'UserCustomHeader' => [
 'value' => 'UserCustomHeader-Value',
 'overwrite' => false,
 ]
 ],
]

// This will set a new header named UserCustomHeader with the UserCustomHeader-Value value for any route name matching 'user'

To overwrite an existing header use overwrite => true.