@@ -23,6 +23,7 @@ class ApplicationResponse
23
23
private $ controllerResponse ;
24
24
private $ config ;
25
25
private $ view ;
26
+ private $ headers ;
26
27
27
28
public function __construct (
28
29
string $ controllerClass ,
@@ -33,38 +34,45 @@ public function __construct(
33
34
$ this ->controllerClass = $ controllerClass ;
34
35
$ this ->controllerResponse = $ controllerResponse ;
35
36
$ this ->config = $ config ;
37
+ $ this ->headers = isset ( $ config ->get ('app ' )['default_headers ' ]) ?
38
+ $ config ->get ('app ' )->get ('default_headers ' )->toArray () : [];
36
39
$ this ->view = $ view ;
37
40
}
38
41
42
+ public function getResponseHeaders () : array
43
+ {
44
+ return array_merge ($ this ->headers , $ this ->controllerResponse ->getHeaders ());
45
+ }
46
+
39
47
public function returnResponse () : ResponseInterface
40
48
{
41
49
switch ($ this ->controllerResponse ->getReturnType ()) {
42
50
case Router::HTML :
43
51
return new HtmlResponse (
44
52
$ this ->renderResponse (),
45
53
$ this ->controllerResponse ->getStatusCode (),
46
- $ this ->controllerResponse -> getHeaders ()
54
+ $ this ->getResponseHeaders ()
47
55
);
48
56
break ;
49
57
case Router::JSON :
50
58
return new JsonResponse (
51
59
$ this ->controllerResponse ->getData (),
52
60
$ this ->controllerResponse ->getStatusCode (),
53
- $ this ->controllerResponse -> getHeaders ()
61
+ $ this ->getResponseHeaders ()
54
62
);
55
63
break ;
56
64
case Router::TEXT :
57
65
return new TextResponse (
58
66
$ this ->renderResponse (),
59
67
$ this ->controllerResponse ->getStatusCode (),
60
- $ this ->controllerResponse -> getHeaders ()
68
+ $ this ->getResponseHeaders ()
61
69
);
62
70
break ;
63
71
case Router::XML :
64
72
return new XmlResponse (
65
73
$ this ->renderResponse (),
66
74
$ this ->controllerResponse ->getStatusCode (),
67
- $ this ->controllerResponse -> getHeaders ()
75
+ $ this ->getResponseHeaders ()
68
76
);
69
77
break ;
70
78
case Router::DOWNLOAD :
@@ -76,27 +84,27 @@ public function returnResponse() : ResponseInterface
76
84
return new Response (
77
85
$ stream ,
78
86
$ this ->controllerResponse ->getStatusCode (),
79
- $ this ->controllerResponse -> getHeaders ()
87
+ $ this ->getResponseHeaders ()
80
88
);
81
89
break ;
82
90
case Router::REDIRECT :
83
91
return new RedirectResponse (
84
92
$ this ->controllerResponse ->getMetaData ()['uri ' ],
85
93
$ this ->controllerResponse ->getStatusCode (),
86
- $ this ->controllerResponse -> getHeaders ()
94
+ $ this ->getResponseHeaders ()
87
95
);
88
96
break ;
89
97
case Router::CUSTOM :
90
98
return new HtmlResponse (
91
99
$ this ->renderResponse (),
92
100
$ this ->controllerResponse ->getStatusCode (),
93
- $ this ->controllerResponse -> getHeaders ()
101
+ $ this ->getResponseHeaders ()
94
102
);
95
103
break ;
96
104
case Router::EMPTY :
97
105
return new EmptyResponse (
98
106
$ this ->controllerResponse ->getStatusCode (),
99
- $ this ->controllerResponse -> getHeaders ()
107
+ $ this ->getResponseHeaders ()
100
108
);
101
109
break ;
102
110
}
0 commit comments