Skip to content

Commit

Permalink
Merge pull request #126 from kristianheljas/symfony-message-bridge-di…
Browse files Browse the repository at this point in the history
…actoros-deprecation

Utilize Symfonys PSR Factory. Closes #124 #123
  • Loading branch information
sfelix-martins authored Apr 3, 2020
2 parents cc723db + e9f05cb commit f476642
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions src/Facades/ServerRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,32 @@

namespace SMartins\PassportMultiauth\Facades;

use Exception;
use Nyholm\Psr7\Factory\Psr17Factory;
use Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory;
use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory;
use Symfony\Component\HttpFoundation\Request;

class ServerRequest
{
/**
* @todo Switch deprecated DiactorosFactory by PsrHttpFactory
* @todo Remove deprecated DiactorosFactory in favor of PsrHttpFactory
* @param Request $symfonyRequest
* @return \Psr\Http\Message\RequestInterface|\Psr\Http\Message\ServerRequestInterface|\Zend\Diactoros\ServerRequest
*/
public static function createRequest(Request $symfonyRequest)
{
return (new DiactorosFactory())->createRequest($symfonyRequest);
if (class_exists(Psr17Factory::class) && class_exists(PsrHttpFactory::class)) {
$psr17Factory = new Psr17Factory;

return (new PsrHttpFactory($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory))
->createRequest($symfonyRequest);
}

if (class_exists(DiactorosFactory::class)) {
return (new DiactorosFactory)->createRequest($symfonyRequest);
}

throw new Exception('Unable to resolve PSR request. Please install symfony/psr-http-message-bridge and nyholm/psr7.');
}
}

0 comments on commit f476642

Please sign in to comment.