Skip to content

Commit

Permalink
Merge pull request #1 from ray-di/server-request-dircet
Browse files Browse the repository at this point in the history
Bind ServerRequestInterface
  • Loading branch information
koriym committed Nov 27, 2018
2 parents 10d2c6c + ad5fd7e commit f2bb293
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 8 deletions.
10 changes: 2 additions & 8 deletions README.md
Expand Up @@ -35,16 +35,10 @@ class AppModule extends AbstractModule
````php
class Foo
{
/**
* @var \Psr\Http\Message\ServerRequestInterface
*/
private $request;

public function __construct(RequestProviderInterface $requestProvider)
public function __construct(ServerRequestInterface $serverRequest)
{
$this->request = requestProvider->get();
// retrieve cookies
$cookie = $this->request->getCookieParams(); // $_COOKIE
$cookie = $serverRequest->getCookieParams(); // $_COOKIE
}
}
````
15 changes: 15 additions & 0 deletions src/HttpRequestRayProvider.php
@@ -0,0 +1,15 @@
<?php
namespace Ray\HttpMessage;

use Ray\Di\ProviderInterface;

final class HttpRequestRayProvider implements ProviderInterface
{
/**
* {@inheritdoc}
*/
public function get()
{
return (new HttpRequestProvider)->get();
}
}
2 changes: 2 additions & 0 deletions src/Psr7Module.php
@@ -1,12 +1,14 @@
<?php
namespace Ray\HttpMessage;

use Nyholm\Psr7\ServerRequest;
use Ray\Di\AbstractModule;

class Psr7Module extends AbstractModule
{
protected function configure()
{
$this->bind(RequestProviderInterface::class)->to(HttpRequestProvider::class);
$this->bind(ServerRequest::class)->toProvider(HttpRequestRayProvider::class);
}
}
9 changes: 9 additions & 0 deletions tests/Psr7HttpModuleTest.php
@@ -1,6 +1,7 @@
<?php
namespace Ray\HttpMessage;

use Nyholm\Psr7\ServerRequest;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ServerRequestInterface;
use Ray\Di\Injector;
Expand All @@ -17,6 +18,14 @@ public function testPsr7HttpModule()
$this->assertInstanceOf(ServerRequestInterface::class, $request);
}

public function testPsr7ServerRequestTest()
{
$injector = new Injector(new Psr7Module);
/* @var ServerRequest $serverRequest */
$serverRequest = $injector->getInstance(ServerRequest::class);
$this->assertInstanceOf(ServerRequest::class, $serverRequest);
}

public function superGlobalsServer()
{
return [
Expand Down

0 comments on commit f2bb293

Please sign in to comment.