mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-08-02 13:07:27 +02:00
32 lines
765 B
PHP
32 lines
765 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace DesignPatterns\Behavioral\ChainOfResponsibilities\Responsible;
|
|
|
|
use DesignPatterns\Behavioral\ChainOfResponsibilities\Handler;
|
|
use Psr\Http\Message\RequestInterface;
|
|
|
|
class HttpInMemoryCacheHandler extends Handler
|
|
{
|
|
public function __construct(private array $data, ?Handler $successor = null)
|
|
{
|
|
parent::__construct($successor);
|
|
}
|
|
|
|
protected function processing(RequestInterface $request): ?string
|
|
{
|
|
$key = sprintf(
|
|
'%s?%s',
|
|
$request->getUri()->getPath(),
|
|
$request->getUri()->getQuery()
|
|
);
|
|
|
|
if ($request->getMethod() == 'GET' && isset($this->data[$key])) {
|
|
return $this->data[$key];
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|