PHP code example of colossal / colossal-middleware-queue
1. Go to this page and download the library: Download colossal/colossal-middleware-queue library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
colossal / colossal-middleware-queue example snippets
namespace Dummy;
use Psr\Http\Message\{
ResponseInterface,
ServerRequestInterface
};
use Psr\Http\Server\{
MiddlewareInterface,
RequestHandlerInterface
};
class DummyMiddlewareA
{
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
echo 'A';
return $handler->handle($request);
}
}
class DummyMiddlewareB
{
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
echo 'B';
return $handler->handle($request);
}
}
class DummyHandler
{
public function handle(ServerRequestInterface $request): ResponseInterface
{
echo 'Handler';
// Return a ResponseInterface
}
}
// ---------------------------------------------------------------------------- //
// Creating and using the MiddlewareQueue is trivial. //
// ---------------------------------------------------------------------------- //
use Colossal\MiddlewareQueue\MiddlewareQueue;
use Dummy\{
DummyMiddlewareA,
DummyMiddlewareB,
DummyHandler
};
$dummyMiddlewareA = new DummyMiddlewareA();
$dummyMiddlewareB = new DummyMiddlewareB();
$middlewareQueue = new MiddlewareQueue();
$middlewareQueue->enqueue($dummyMiddlewareA);
$middlewareQueue->enqueue($dummyMiddlewareB);
// ---------------------------------------------------------------------------- //
// The resulting MiddlewareQueue can now be used as a single middleware. //
// A call to process will now do the following (in order): //
// - Call $dummyMiddlewareA->process() passing the request passed to //
// $middlewareQueue->process(). //
// - Call $dummyMiddlewareB->process() passing the request passed to //
// $middlewareQueue->process(). //
// - Call RequestHandlerInterface::handle() on the handler passed to //
// $middlewareInterface->process(). //
// ---------------------------------------------------------------------------- //
$middlewareQueue->process($request, $dummyHandler);
// Prints:
// A
// B
// Handler
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.