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\Response\Stream; | |
13 | ||
14 | class SimpleStreamResponseSender extends AbstractResponseSender | |
15 | { | |
16 | /** | |
17 | * Send the stream | |
18 | * | |
19 | * @param SendResponseEvent $event | |
20 | * @return SimpleStreamResponseSender | |
21 | */ | |
22 | public function sendStream(SendResponseEvent $event) | |
23 | { | |
24 | if ($event->contentSent()) { | |
25 | return $this; | |
26 | } | |
27 | $response = $event->getResponse(); | |
28 | $stream = $response->getStream(); | |
29 | fpassthru($stream); | |
30 | $event->setContentSent(); | |
31 | } | |
32 | ||
33 | /** | |
34 | * Send stream response | |
35 | * | |
36 | * @param SendResponseEvent $event | |
37 | * @return SimpleStreamResponseSender | |
38 | */ | |
39 | public function __invoke(SendResponseEvent $event) | |
40 | { | |
41 | $response = $event->getResponse(); | |
42 | if (!$response instanceof Stream) { | |
43 | return $this; | |
44 | } | |
45 | ||
46 | $this->sendHeaders($event); | |
47 | $this->sendStream($event); | |
48 | $event->stopPropagation(true); | |
49 | return $this; | |
50 | } | |
51 | } |