Overview

Namespaces

  • Evenement
  • None
  • PHP
  • Psr
    • Http
      • Message
  • Ratchet
    • Http
    • RFC6455
      • Handshake
      • Messaging
    • Server
    • Session
      • Serialize
      • Storage
        • Proxy
    • Wamp
    • WebSocket
  • React
    • EventLoop
      • Tick
      • Timer
    • Socket
    • Stream
  • Symfony
    • Component
      • HttpFoundation
        • Session
          • Attribute
          • Flash
          • Storage
            • Handler
            • Proxy
      • Routing
        • Annotation
        • Exception
        • Generator
          • Dumper
        • Loader
          • DependencyInjection
        • Matcher
          • Dumper
        • Tests
          • Annotation
          • Fixtures
            • AnnotatedClasses
            • OtherAnnotatedClasses
          • Generator
            • Dumper
          • Loader
          • Matcher
            • Dumper

Classes

  • CompiledRoute
  • RequestContext
  • Route
  • RouteCollection
  • RouteCollectionBuilder
  • RouteCompiler
  • Router

Interfaces

  • RequestContextAwareInterface
  • RouteCompilerInterface
  • RouterInterface
  • Overview
  • Namespace
  • Class
  • Tree
  1: <?php
  2: 
  3: /*
  4:  * This file is part of the Symfony package.
  5:  *
  6:  * (c) Fabien Potencier <[email protected]>
  7:  *
  8:  * For the full copyright and license information, please view the LICENSE
  9:  * file that was distributed with this source code.
 10:  */
 11: 
 12: namespace Symfony\Component\Routing;
 13: 
 14: use Symfony\Component\HttpFoundation\Request;
 15: 
 16: /**
 17:  * Holds information about the current request.
 18:  *
 19:  * This class implements a fluent interface.
 20:  *
 21:  * @author Fabien Potencier <[email protected]>
 22:  * @author Tobias Schultze <http://tobion.de>
 23:  */
 24: class RequestContext
 25: {
 26:     private $baseUrl;
 27:     private $pathInfo;
 28:     private $method;
 29:     private $host;
 30:     private $scheme;
 31:     private $httpPort;
 32:     private $httpsPort;
 33:     private $queryString;
 34: 
 35:     /**
 36:      * @var array
 37:      */
 38:     private $parameters = array();
 39: 
 40:     /**
 41:      * Constructor.
 42:      *
 43:      * @param string $baseUrl     The base URL
 44:      * @param string $method      The HTTP method
 45:      * @param string $host        The HTTP host name
 46:      * @param string $scheme      The HTTP scheme
 47:      * @param int    $httpPort    The HTTP port
 48:      * @param int    $httpsPort   The HTTPS port
 49:      * @param string $path        The path
 50:      * @param string $queryString The query string
 51:      */
 52:     public function __construct($baseUrl = '', $method = 'GET', $host = 'localhost', $scheme = 'http', $httpPort = 80, $httpsPort = 443, $path = '/', $queryString = '')
 53:     {
 54:         $this->setBaseUrl($baseUrl);
 55:         $this->setMethod($method);
 56:         $this->setHost($host);
 57:         $this->setScheme($scheme);
 58:         $this->setHttpPort($httpPort);
 59:         $this->setHttpsPort($httpsPort);
 60:         $this->setPathInfo($path);
 61:         $this->setQueryString($queryString);
 62:     }
 63: 
 64:     /**
 65:      * Updates the RequestContext information based on a HttpFoundation Request.
 66:      *
 67:      * @param Request $request A Request instance
 68:      *
 69:      * @return $this
 70:      */
 71:     public function fromRequest(Request $request)
 72:     {
 73:         $this->setBaseUrl($request->getBaseUrl());
 74:         $this->setPathInfo($request->getPathInfo());
 75:         $this->setMethod($request->getMethod());
 76:         $this->setHost($request->getHost());
 77:         $this->setScheme($request->getScheme());
 78:         $this->setHttpPort($request->isSecure() ? $this->httpPort : $request->getPort());
 79:         $this->setHttpsPort($request->isSecure() ? $request->getPort() : $this->httpsPort);
 80:         $this->setQueryString($request->server->get('QUERY_STRING', ''));
 81: 
 82:         return $this;
 83:     }
 84: 
 85:     /**
 86:      * Gets the base URL.
 87:      *
 88:      * @return string The base URL
 89:      */
 90:     public function getBaseUrl()
 91:     {
 92:         return $this->baseUrl;
 93:     }
 94: 
 95:     /**
 96:      * Sets the base URL.
 97:      *
 98:      * @param string $baseUrl The base URL
 99:      *
100:      * @return $this
101:      */
102:     public function setBaseUrl($baseUrl)
103:     {
104:         $this->baseUrl = $baseUrl;
105: 
106:         return $this;
107:     }
108: 
109:     /**
110:      * Gets the path info.
111:      *
112:      * @return string The path info
113:      */
114:     public function getPathInfo()
115:     {
116:         return $this->pathInfo;
117:     }
118: 
119:     /**
120:      * Sets the path info.
121:      *
122:      * @param string $pathInfo The path info
123:      *
124:      * @return $this
125:      */
126:     public function setPathInfo($pathInfo)
127:     {
128:         $this->pathInfo = $pathInfo;
129: 
130:         return $this;
131:     }
132: 
133:     /**
134:      * Gets the HTTP method.
135:      *
136:      * The method is always an uppercased string.
137:      *
138:      * @return string The HTTP method
139:      */
140:     public function getMethod()
141:     {
142:         return $this->method;
143:     }
144: 
145:     /**
146:      * Sets the HTTP method.
147:      *
148:      * @param string $method The HTTP method
149:      *
150:      * @return $this
151:      */
152:     public function setMethod($method)
153:     {
154:         $this->method = strtoupper($method);
155: 
156:         return $this;
157:     }
158: 
159:     /**
160:      * Gets the HTTP host.
161:      *
162:      * The host is always lowercased because it must be treated case-insensitive.
163:      *
164:      * @return string The HTTP host
165:      */
166:     public function getHost()
167:     {
168:         return $this->host;
169:     }
170: 
171:     /**
172:      * Sets the HTTP host.
173:      *
174:      * @param string $host The HTTP host
175:      *
176:      * @return $this
177:      */
178:     public function setHost($host)
179:     {
180:         $this->host = strtolower($host);
181: 
182:         return $this;
183:     }
184: 
185:     /**
186:      * Gets the HTTP scheme.
187:      *
188:      * @return string The HTTP scheme
189:      */
190:     public function getScheme()
191:     {
192:         return $this->scheme;
193:     }
194: 
195:     /**
196:      * Sets the HTTP scheme.
197:      *
198:      * @param string $scheme The HTTP scheme
199:      *
200:      * @return $this
201:      */
202:     public function setScheme($scheme)
203:     {
204:         $this->scheme = strtolower($scheme);
205: 
206:         return $this;
207:     }
208: 
209:     /**
210:      * Gets the HTTP port.
211:      *
212:      * @return int The HTTP port
213:      */
214:     public function getHttpPort()
215:     {
216:         return $this->httpPort;
217:     }
218: 
219:     /**
220:      * Sets the HTTP port.
221:      *
222:      * @param int $httpPort The HTTP port
223:      *
224:      * @return $this
225:      */
226:     public function setHttpPort($httpPort)
227:     {
228:         $this->httpPort = (int) $httpPort;
229: 
230:         return $this;
231:     }
232: 
233:     /**
234:      * Gets the HTTPS port.
235:      *
236:      * @return int The HTTPS port
237:      */
238:     public function getHttpsPort()
239:     {
240:         return $this->httpsPort;
241:     }
242: 
243:     /**
244:      * Sets the HTTPS port.
245:      *
246:      * @param int $httpsPort The HTTPS port
247:      *
248:      * @return $this
249:      */
250:     public function setHttpsPort($httpsPort)
251:     {
252:         $this->httpsPort = (int) $httpsPort;
253: 
254:         return $this;
255:     }
256: 
257:     /**
258:      * Gets the query string.
259:      *
260:      * @return string The query string without the "?"
261:      */
262:     public function getQueryString()
263:     {
264:         return $this->queryString;
265:     }
266: 
267:     /**
268:      * Sets the query string.
269:      *
270:      * @param string $queryString The query string (after "?")
271:      *
272:      * @return $this
273:      */
274:     public function setQueryString($queryString)
275:     {
276:         // string cast to be fault-tolerant, accepting null
277:         $this->queryString = (string) $queryString;
278: 
279:         return $this;
280:     }
281: 
282:     /**
283:      * Returns the parameters.
284:      *
285:      * @return array The parameters
286:      */
287:     public function getParameters()
288:     {
289:         return $this->parameters;
290:     }
291: 
292:     /**
293:      * Sets the parameters.
294:      *
295:      * @param array $parameters The parameters
296:      *
297:      * @return $this
298:      */
299:     public function setParameters(array $parameters)
300:     {
301:         $this->parameters = $parameters;
302: 
303:         return $this;
304:     }
305: 
306:     /**
307:      * Gets a parameter value.
308:      *
309:      * @param string $name A parameter name
310:      *
311:      * @return mixed The parameter value or null if nonexistent
312:      */
313:     public function getParameter($name)
314:     {
315:         return isset($this->parameters[$name]) ? $this->parameters[$name] : null;
316:     }
317: 
318:     /**
319:      * Checks if a parameter value is set for the given parameter.
320:      *
321:      * @param string $name A parameter name
322:      *
323:      * @return bool True if the parameter value is set, false otherwise
324:      */
325:     public function hasParameter($name)
326:     {
327:         return array_key_exists($name, $this->parameters);
328:     }
329: 
330:     /**
331:      * Sets a parameter value.
332:      *
333:      * @param string $name      A parameter name
334:      * @param mixed  $parameter The parameter value
335:      *
336:      * @return $this
337:      */
338:     public function setParameter($name, $parameter)
339:     {
340:         $this->parameters[$name] = $parameter;
341: 
342:         return $this;
343:     }
344: }
345: 
Ratchet API documentation generated by ApiGen 2.8.0