Skip to content

Commit

Permalink
Merge pull request #23 from persianphilosopher/patch-1
Browse files Browse the repository at this point in the history
SapiEmitter
  • Loading branch information
kocsismate authored Jul 30, 2018
2 parents 9eadf75 + 397990d commit 4f31b5a
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions src/Middleware/HttpHandlerRunnerMiddleware
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php
declare(strict_types=1);

namespace WoohooLabs\Harmony\Middleware;

use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Zend\HttpHandlerRunner\Emitter\EmitterInterface;
use Zend\HttpHandlerRunner\Emitter\SapiEmitter;

class HttpHandlerRunnerMiddleware implements MiddlewareInterface
{
/**
* @var EmitterInterface
*/
protected $emitter;
/**
* @var bool
*/
protected $checkOutputStart;
public function __construct(EmitterInterface $emitter = null, bool $checkOutputStart = false)
{
$this->emitter = $emitter ?? new SapiEmitter();
$this->checkOutputStart = $checkOutputStart;
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$response = $handler->handle($request);
if ($this->checkOutputStart === false || headers_sent() === false) {
$this->emitter->emit($response);
}
return $response;
}
public function getEmitter(): EmitterInterface
{
return $this->emitter;
}
public function setEmitter(EmitterInterface $emitter): void
{
$this->emitter = $emitter;
}
public function isOutputStartChecked(): bool
{
return $this->checkOutputStart;
}
public function setCheckOutputStart(bool $checkOutputStart): void
{
$this->checkOutputStart = $checkOutputStart;
}
}

0 comments on commit 4f31b5a

Please sign in to comment.