You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
2 years ago
|
<?php
|
||
|
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace PhpMyAdmin\Http\Factory;
|
||
|
|
||
|
use PhpMyAdmin\Http\ServerRequest;
|
||
|
use Psr\Http\Message\ServerRequestFactoryInterface;
|
||
|
use Psr\Http\Message\ServerRequestInterface;
|
||
|
use Slim\Psr7\Factory\ServerRequestFactory as RequestFactory;
|
||
|
|
||
|
class ServerRequestFactory implements ServerRequestFactoryInterface
|
||
|
{
|
||
|
/** @var ServerRequestFactoryInterface */
|
||
|
private $factory;
|
||
|
|
||
|
public function __construct(?ServerRequestFactoryInterface $factory = null)
|
||
|
{
|
||
|
if ($factory === null) {
|
||
|
$this->factory = new RequestFactory();
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$this->factory = $factory;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @inheritDoc
|
||
|
*/
|
||
|
public function createServerRequest(string $method, $uri, array $serverParams = []): ServerRequestInterface
|
||
|
{
|
||
|
$serverRequest = $this->factory->createServerRequest($method, $uri, $serverParams);
|
||
|
|
||
|
return new ServerRequest($serverRequest);
|
||
|
}
|
||
|
|
||
|
public static function createFromGlobals(): ServerRequest
|
||
|
{
|
||
|
/** @psalm-suppress InternalMethod */
|
||
|
$serverRequest = RequestFactory::createFromGlobals();
|
||
|
|
||
|
return new ServerRequest($serverRequest);
|
||
|
}
|
||
|
}
|