View difference between Paste ID: Hed1Gxqk and T1aDmUkH
SHOW: | | - or go back to the newest paste.
1
<?php
2
3
namespace Whatever;
4
5
use Symfony\Component\HttpFoundation\Request as SymfonyRequest;
6
use Psr\Http\Message\ServerRequestInterface as PSR7Request;
7
use Zend\Diactoros\ServerRequestFactory as DiactorosFactory;
8
9
interface RequestContainerInterface
10
{
11
	/**
12
	 * @return SymfonyRequest
13
	 */
14
	public function getSymfonyRequest();
15
16
	/**
17
	 * @return PSR7Request
18
	 */
19
	public function getPSR7Request();
20
}
21
22
class RequestContainer implements RequestContainerInterface
23
{
24
	private $symfonyRequest;
25
	private $psr7Request;
26
27
	public function __construct(SymfonyRequest $symfonyRequest, PSR7Request $psr7Request)
28
	{
29
		$this->symfonyRequest = clone $symfonyRequest;
30
		$this->psr7Request = $psr7Request;
31
	}
32
33
	public static function fromGlobals()
34
	{
35
		$symfonyRequest = SymfonyRequest::createFromGlobals();
36
		$psr7Request = DiactorosFactory::fromGlobals();
37
38
		return new self::($symfonyRequest, $psr7Request);
39
	}
40
41
	public function getSymfonyRequest()
42
	{
43
		return clone $this->symfonyRequest;
44
	}
45
46
	public function getPSR7Request()
47
	{
48
		return $this->psr7Request;
49
	}
50
}
51
52
// Usage
53
54
$requestContainer = RequestContainer::fromGlobals();
55
56
$requestContainer->getSymfonyRequest();
57
$requestContainer->getPSR7Request();