Created
June 23, 2016 14:52
-
-
Save TorbenKoehn/45a465400bdd85352f15f12981a7ddaa to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use Psr\Http\Message\ResponseInterface; | |
use Ion\Http; | |
use Ion\Http\{ | |
MiddlewareInterface, | |
Middleware\Dispatcher, | |
Middleware\RunFilterTrait, | |
Response | |
}; | |
include '../../vendor/autoload.php'; | |
$dp = new Dispatcher(); | |
$dp->append(new class implements MiddlewareInterface { | |
use RunFilterTrait; | |
protected function run(): ResponseInterface | |
{ | |
$this->response->getBody()->write("Hello from anon!\n"); | |
return $this->response->withHeader('some-header', 'some-value'); | |
} | |
}); | |
$dp->prepend(function($request, $response, $next) { | |
$response->getBody()->write("Hello from prepend closure!\n"); | |
return $next($request, $response); | |
}); | |
$dp->append(function($request, $response, $next) { | |
$response->getBody()->write("Hello from append closure!\n"); | |
return $next($request, $response); | |
}); | |
$dp->append(new class implements MiddlewareInterface { | |
use RunFilterTrait; | |
protected function filter(ResponseInterface $response): ResponseInterface | |
{ | |
$parts = array_map(function($line) { | |
return '<span style="color: red">'.$line.'</span>'; | |
}, explode("\n", (string)$response->getBody())); | |
$response->getBody()->rewind(); | |
$response->getBody()->write(implode("<br>", $parts)); | |
return $response; | |
} | |
}); | |
$resp = $dp->dispatch(Http::getServerRequest(), new Response()); | |
echo '<pre>'; | |
var_dump($resp, (string)$resp->getBody()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment