Skip to content
This repository was archived by the owner on Dec 12, 2021. It is now read-only.

Commit fda5556

Browse files
committed
injecting default headers via config added
1 parent 4d9a9d5 commit fda5556

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

src/ApplicationResponse.php

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class ApplicationResponse
2323
private $controllerResponse;
2424
private $config;
2525
private $view;
26+
private $headers;
2627

2728
public function __construct(
2829
string $controllerClass,
@@ -33,38 +34,45 @@ public function __construct(
3334
$this->controllerClass = $controllerClass;
3435
$this->controllerResponse = $controllerResponse;
3536
$this->config = $config;
37+
$this->headers = isset( $config->get('app')['default_headers']) ?
38+
$config->get('app')->get('default_headers')->toArray() : [];
3639
$this->view = $view;
3740
}
3841

42+
public function getResponseHeaders() : array
43+
{
44+
return array_merge($this->headers, $this->controllerResponse->getHeaders());
45+
}
46+
3947
public function returnResponse() : ResponseInterface
4048
{
4149
switch ($this->controllerResponse->getReturnType()) {
4250
case Router::HTML:
4351
return new HtmlResponse(
4452
$this->renderResponse(),
4553
$this->controllerResponse->getStatusCode(),
46-
$this->controllerResponse->getHeaders()
54+
$this->getResponseHeaders()
4755
);
4856
break;
4957
case Router::JSON:
5058
return new JsonResponse(
5159
$this->controllerResponse->getData(),
5260
$this->controllerResponse->getStatusCode(),
53-
$this->controllerResponse->getHeaders()
61+
$this->getResponseHeaders()
5462
);
5563
break;
5664
case Router::TEXT:
5765
return new TextResponse(
5866
$this->renderResponse(),
5967
$this->controllerResponse->getStatusCode(),
60-
$this->controllerResponse->getHeaders()
68+
$this->getResponseHeaders()
6169
);
6270
break;
6371
case Router::XML:
6472
return new XmlResponse(
6573
$this->renderResponse(),
6674
$this->controllerResponse->getStatusCode(),
67-
$this->controllerResponse->getHeaders()
75+
$this->getResponseHeaders()
6876
);
6977
break;
7078
case Router::DOWNLOAD:
@@ -76,27 +84,27 @@ public function returnResponse() : ResponseInterface
7684
return new Response(
7785
$stream,
7886
$this->controllerResponse->getStatusCode(),
79-
$this->controllerResponse->getHeaders()
87+
$this->getResponseHeaders()
8088
);
8189
break;
8290
case Router::REDIRECT:
8391
return new RedirectResponse(
8492
$this->controllerResponse->getMetaData()['uri'],
8593
$this->controllerResponse->getStatusCode(),
86-
$this->controllerResponse->getHeaders()
94+
$this->getResponseHeaders()
8795
);
8896
break;
8997
case Router::CUSTOM:
9098
return new HtmlResponse(
9199
$this->renderResponse(),
92100
$this->controllerResponse->getStatusCode(),
93-
$this->controllerResponse->getHeaders()
101+
$this->getResponseHeaders()
94102
);
95103
break;
96104
case Router::EMPTY:
97105
return new EmptyResponse(
98106
$this->controllerResponse->getStatusCode(),
99-
$this->controllerResponse->getHeaders()
107+
$this->getResponseHeaders()
100108
);
101109
break;
102110
}

test/resources/app/config/autoload/global.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,8 @@
44
return [
55
'app' => [
66
'app_namespace' => 'MyApp',
7+
'default_headers' => [
8+
'X-Powered-By' => 'Selami/PHP'
9+
]
710
],
811
];

0 commit comments

Comments
 (0)