Skip to content

Commit

Permalink
[Routing] fix inconsistencies in RequestContext
Browse files Browse the repository at this point in the history
  • Loading branch information
Tobion committed Oct 9, 2014
1 parent a45c187 commit f61607f
Showing 1 changed file with 31 additions and 24 deletions.
55 changes: 31 additions & 24 deletions src/Symfony/Component/Routing/RequestContext.php
Expand Up @@ -17,6 +17,7 @@
* Holds information about the current request.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Tobias Schultze <http://tobion.de>
*
* @api
*/
Expand Down Expand Up @@ -52,16 +53,21 @@ class RequestContext
*/
public function __construct($baseUrl = '', $method = 'GET', $host = 'localhost', $scheme = 'http', $httpPort = 80, $httpsPort = 443, $path = '/', $queryString = '')
{
$this->baseUrl = $baseUrl;
$this->method = strtoupper($method);
$this->host = $host;
$this->scheme = strtolower($scheme);
$this->httpPort = $httpPort;
$this->httpsPort = $httpsPort;
$this->pathInfo = $path;
$this->queryString = $queryString;
$this->setBaseUrl($baseUrl);
$this->setMethod($method);
$this->setHost($host);
$this->setScheme($scheme);
$this->setHttpPort($httpPort);
$this->setHttpsPort($httpsPort);
$this->setPathInfo($path);
$this->setQueryString($queryString);
}

/**
* Updates the RequestContext information based on a HttpFoundation Request.
*
* @param Request $request A Request instance
*/
public function fromRequest(Request $request)
{
$this->setBaseUrl($request->getBaseUrl());
Expand All @@ -71,7 +77,7 @@ public function fromRequest(Request $request)
$this->setScheme($request->getScheme());
$this->setHttpPort($request->isSecure() ? $this->httpPort : $request->getPort());
$this->setHttpsPort($request->isSecure() ? $request->getPort() : $this->httpsPort);
$this->setQueryString($request->server->get('QUERY_STRING'));
$this->setQueryString($request->server->get('QUERY_STRING', ''));
}

/**
Expand Down Expand Up @@ -143,6 +149,8 @@ public function setMethod($method)
/**
* Gets the HTTP host.
*
* The host is always lowercased because it must be treated case-insensitive.
*
* @return string The HTTP host
*/
public function getHost()
Expand All @@ -159,7 +167,7 @@ public function getHost()
*/
public function setHost($host)
{
$this->host = $host;
$this->host = strtolower($host);
}

/**
Expand Down Expand Up @@ -187,7 +195,7 @@ public function setScheme($scheme)
/**
* Gets the HTTP port.
*
* @return string The HTTP port
* @return int The HTTP port
*/
public function getHttpPort()
{
Expand All @@ -197,19 +205,19 @@ public function getHttpPort()
/**
* Sets the HTTP port.
*
* @param string $httpPort The HTTP port
* @param int $httpPort The HTTP port
*
* @api
*/
public function setHttpPort($httpPort)
{
$this->httpPort = $httpPort;
$this->httpPort = (int) $httpPort;
}

/**
* Gets the HTTPS port.
*
* @return string The HTTPS port
* @return int The HTTPS port
*/
public function getHttpsPort()
{
Expand All @@ -219,19 +227,19 @@ public function getHttpsPort()
/**
* Sets the HTTPS port.
*
* @param string $httpsPort The HTTPS port
* @param int $httpsPort The HTTPS port
*
* @api
*/
public function setHttpsPort($httpsPort)
{
$this->httpsPort = $httpsPort;
$this->httpsPort = (int) $httpsPort;
}

/**
* Gets the query string.
*
* @return string The query string
* @return string The query string without the "?"
*/
public function getQueryString()
{
Expand All @@ -241,13 +249,14 @@ public function getQueryString()
/**
* Sets the query string.
*
* @param string $queryString The query string
* @param string $queryString The query string (after "?")
*
* @api
*/
public function setQueryString($queryString)
{
$this->queryString = $queryString;
// string cast to be fault-tolerant, accepting null
$this->queryString = (string) $queryString;
}

/**
Expand All @@ -263,11 +272,9 @@ public function getParameters()
/**
* Sets the parameters.
*
* This method implements a fluent interface.
*
* @param array $parameters The parameters
*
* @return Route The current Route instance
* @return RequestContext The current instance, implementing a fluent interface
*/
public function setParameters(array $parameters)
{
Expand All @@ -281,7 +288,7 @@ public function setParameters(array $parameters)
*
* @param string $name A parameter name
*
* @return mixed The parameter value
* @return mixed The parameter value or null if nonexistent
*/
public function getParameter($name)
{
Expand All @@ -293,7 +300,7 @@ public function getParameter($name)
*
* @param string $name A parameter name
*
* @return bool true if the parameter value is set, false otherwise
* @return bool True if the parameter value is set, false otherwise
*/
public function hasParameter($name)
{
Expand Down

0 comments on commit f61607f

Please sign in to comment.