Commit | Line | Data |
---|---|---|
44d399bc S |
1 | <?php |
2 | /** | |
3 | * Zend Framework (http://framework.zend.com/) | |
4 | * | |
5 | * @link http://github.com/zendframework/zf2 for the canonical source repository | |
6 | * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) | |
7 | * @license http://framework.zend.com/license/new-bsd New BSD License | |
8 | */ | |
9 | ||
10 | namespace Zend\Mvc\ResponseSender; | |
11 | ||
12 | use Zend\Http\Header\MultipleHeaderInterface; | |
13 | ||
14 | abstract class AbstractResponseSender implements ResponseSenderInterface | |
15 | { | |
16 | /** | |
17 | * Send HTTP headers | |
18 | * | |
19 | * @param SendResponseEvent $event | |
20 | * @return self | |
21 | */ | |
22 | public function sendHeaders(SendResponseEvent $event) | |
23 | { | |
24 | if (headers_sent() || $event->headersSent()) { | |
25 | return $this; | |
26 | } | |
27 | ||
28 | $response = $event->getResponse(); | |
29 | ||
30 | foreach ($response->getHeaders() as $header) { | |
31 | if ($header instanceof MultipleHeaderInterface) { | |
32 | header($header->toString(), false); | |
33 | continue; | |
34 | } | |
35 | header($header->toString()); | |
36 | } | |
37 | ||
38 | $status = $response->renderStatusLine(); | |
39 | header($status); | |
40 | ||
41 | $event->setHeadersSent(); | |
42 | return $this; | |
43 | } | |
44 | } |