From 74fb2a691bd9b688e1fe027260c2bf2737fce697 Mon Sep 17 00:00:00 2001 From: Vincent Dieltiens Date: Sat, 9 Nov 2013 01:02:01 +0100 Subject: [PATCH] [Router] Update the Url QueryString of the request object with the parameters return by the UrlMatcher to let the developer access thoses parameters --- src/Ratchet/Http/Router.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Ratchet/Http/Router.php b/src/Ratchet/Http/Router.php index 8e6611e..4596af1 100644 --- a/src/Ratchet/Http/Router.php +++ b/src/Ratchet/Http/Router.php @@ -3,6 +3,7 @@ namespace Ratchet\Http; use Ratchet\ConnectionInterface; use Guzzle\Http\Message\RequestInterface; use Guzzle\Http\Message\Response; +use Guzzle\Http\Url; use Symfony\Component\Routing\Matcher\UrlMatcherInterface; use Symfony\Component\Routing\Exception\MethodNotAllowedException; use Symfony\Component\Routing\Exception\ResourceNotFoundException; @@ -45,6 +46,16 @@ class Router implements HttpServerInterface { if (!($route['_controller'] instanceof HttpServerInterface)) { throw new \UnexpectedValueException('All routes must implement Ratchet\Http\HttpServerInterface'); } + + $parameters = array(); + foreach($route as $key => $value) { + if (!in_array($key, array('_controller', '_route'))) { + $parameters[$key] = $value; + } + } + $url = Url::factory($request->getPath()); + $url->setQuery($parameters); + $request->setUrl($url); $conn->controller = $route['_controller']; $conn->controller->onOpen($conn, $request);