<?php
/**
* Wraps existing logic for response headers with default values during data migration.
*
* @param array $responseHeaders Existing response headers.
* @param array $defaultHeaders Array of default response headers.
* @return array Modified response headers with default values applied.
*/
function applyDefaultResponseHeaders(array $responseHeaders, array $defaultHeaders): array
{
// Merge default headers with existing headers, prioritizing defaults.
$mergedHeaders = array_merge($responseHeaders, $defaultHeaders);
// Apply defaults where headers are missing or empty.
$mergedHeaders = applyDefaultValues($mergedHeaders);
return $mergedHeaders;
}
/**
* Applies default values to response headers.
*
* @param array $headers Array of response headers.
* @return array Modified response headers with default values.
*/
function applyDefaultValues(array $headers): array
{
$defaults = [
'Content-Type' => 'application/json',
'Cache-Control' => 'no-cache, no-store, must-revalidate',
'Pragma' => 'no-cache',
'Expires' => '0',
'X-Migrate-Status' => 'in_progress', //Example custom header
];
foreach ($defaults as $header => $defaultValue) {
if (!isset($headers[$header]) || empty($headers[$header])) {
$headers[$header] = $defaultValue;
}
}
return $headers;
}
// Example usage (can be removed or adapted for your needs)
/*
$existingHeaders = [
'Content-Type' => 'application/json',
'X-Custom-Header' => 'some_value',
];
$defaultHeaders = [
'Cache-Control' => 'no-cache',
'Pragma' => 'no-cache',
'X-Migrate-Status' => 'initial',
];
$modifiedHeaders = applyDefaultResponseHeaders($existingHeaders, $defaultHeaders);
print_r($modifiedHeaders);
*/
?>
Add your comment