comparison vendor/symfony/routing/RequestContext.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 1fec387a4317
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
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 <fabien@symfony.com>
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 }