1. Go to this page and download the library: Download juanchosl/requestlistener 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/ */
juanchosl / requestlistener example snippets
declare(strict_types=1);
namespace Src\Infrastructure\Middlewares;
use Fig\Http\Message\StatusCodeInterface;
use JuanchoSL\HttpData\Factories\ResponseFactory;
use JuanchoSL\Validators\Types\Strings\StringValidations;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Psr\Http\Message\ResponseInterface;
class AuthorizationMiddleware implements MiddlewareInterface
{
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$ip = filter_input(INPUT_SERVER, 'SERVER_ADDR');
if (!(new StringValidations)->isNotEmpty()->isIpV4()->isValueContaining('192.168.0.1')->getResult((string)$ip)) {
return (new ResponseFactory)->createResponse(StatusCodeInterface::STATUS_UNAUTHORIZED);
}
return $handler->handle($request);
}
}
declare(strict_types=1);
namespace JuanchoSL\RequestListener\Commands;
use Fig\Http\Message\StatusCodeInterface;
use JuanchoSL\DataTransfer\Factories\DataConverterFactory;
use JuanchoSL\DataTransfer\Factories\DataTransferFactory;
use JuanchoSL\HttpData\Factories\ResponseFactory;
use JuanchoSL\HttpData\Factories\StreamFactory;
use JuanchoSL\HttpHeaders\ContentType;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class ConvertHandler implements RequestHandlerInterface
{
public function handle(ServerRequestInterface $request): ResponseInterface
{
$body_contents = DataTransferFactory::byMimeType((string) $request->getBody(), $request->getHeader('content-type'));
$content_type = ($request->hasHeader('accept')) ? $request->getHeader('accept') : ContentType::get($request->getQueryParams()['format']);
$body = DataConverterFactory::asMimeType($body_contents, $content_type);
return (new ResponseFactory)->createResponse(StatusCodeInterface::STATUS_OK)
->withAddedHeader('content-type', $content_type)
->withBody((new StreamFactory)->createStream($body));
}
}
use JuanchoSL\Logger\Logger;
use JuanchoSL\Logger\Composers\TextComposer;
use JuanchoSL\Logger\Repositories\FileRepository;
use JuanchoSL\RequestListener\Application;
use JuanchoSL\RequestListener\Handlers\MyErrorHandler;
use JuanchoSL\RequestListener\Middlewares\AuthenticationMiddleware;
use JuanchoSL\RequestListener\Middlewares\OutputCompressionMiddleware;
date_default_timezone_set("Europe/Madrid");
/convert', ConvertCommand::class);
$app->put('/convert', ConvertHandler::class);
$app->addMiddleware(new OutputCompressionMiddleware);
$app->run(); //call to run, performs an exit in order to process shutdown_functions and exit code from console use
declare(strict_types=1);
namespace JuanchoSL\RequestListener\Commands;
use Fig\Http\Message\StatusCodeInterface;
use JuanchoSL\DataTransfer\Factories\DataConverterFactory;
use JuanchoSL\DataTransfer\Factories\DataTransferFactory;
use JuanchoSL\HttpData\Factories\StreamFactory;
use JuanchoSL\HttpHeaders\ContentType;
use JuanchoSL\RequestListener\Enums\InputArgument;
use JuanchoSL\RequestListener\Enums\InputOption;
use JuanchoSL\RequestListener\UseCases;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
class ConvertCommand extends UseCases
{
protected function configure(): void
{
$this->addArgument('format', InputArgument::OPTIONAL, InputOption::SINGLE);
}
public function __invoke(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
{
$body_contents = DataTransferFactory::byMimeType((string) $request->getBody(), $request->getHeader('content-type'));
$content_type = ($request->hasHeader('accept')) ? $request->getHeader('accept') : ContentType::get($request->getQueryParams()['format']);
$body = DataConverterFactory::asMimeType($body_contents, $content_type);
return $response
->withStatus(StatusCodeInterface::STATUS_OK)
->withAddedHeader('content-type', $content_type)
->withBody((new StreamFactory)->createStream($body));
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.