Skip to content

dotkernel/dot-response-header

Folders and files

NameName
Last commit message
Last commit date

Latest commit

67837ba · Jan 28, 2025

History

65 Commits
Jan 28, 2025
Jul 20, 2023
Jan 28, 2025
Jul 27, 2023
Oct 22, 2024
Jul 12, 2023
Jan 28, 2025
Jul 20, 2023
Jan 28, 2025
May 4, 2021
Jan 28, 2025
May 8, 2024
Jan 28, 2025
Jan 28, 2025
Jul 20, 2023
Jul 20, 2023
Jul 12, 2023

Repository files navigation

dot-response-header

OSS Lifecycle PHP from Packagist (specify version)

GitHub issues GitHub forks GitHub stars GitHub license

Build Static codecov

Middleware for setting and overwriting custom response headers.

Requirements

  • PHP: 8.1, 8.2, 8.3 or 8.4

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.