Chris@14
|
1 <?php
|
Chris@14
|
2
|
Chris@14
|
3 /*
|
Chris@14
|
4 * This file is part of the Symfony package.
|
Chris@14
|
5 *
|
Chris@14
|
6 * (c) Fabien Potencier <fabien@symfony.com>
|
Chris@14
|
7 *
|
Chris@14
|
8 * For the full copyright and license information, please view the LICENSE
|
Chris@14
|
9 * file that was distributed with this source code.
|
Chris@14
|
10 */
|
Chris@14
|
11
|
Chris@14
|
12 namespace Symfony\Component\Routing\Loader\Configurator\Traits;
|
Chris@14
|
13
|
Chris@14
|
14 use Symfony\Component\Routing\Route;
|
Chris@14
|
15 use Symfony\Component\Routing\RouteCollection;
|
Chris@14
|
16
|
Chris@14
|
17 trait RouteTrait
|
Chris@14
|
18 {
|
Chris@14
|
19 /**
|
Chris@14
|
20 * @var RouteCollection|Route
|
Chris@14
|
21 */
|
Chris@14
|
22 private $route;
|
Chris@14
|
23
|
Chris@14
|
24 /**
|
Chris@14
|
25 * Adds defaults.
|
Chris@14
|
26 *
|
Chris@14
|
27 * @return $this
|
Chris@14
|
28 */
|
Chris@14
|
29 final public function defaults(array $defaults)
|
Chris@14
|
30 {
|
Chris@14
|
31 $this->route->addDefaults($defaults);
|
Chris@14
|
32
|
Chris@14
|
33 return $this;
|
Chris@14
|
34 }
|
Chris@14
|
35
|
Chris@14
|
36 /**
|
Chris@14
|
37 * Adds requirements.
|
Chris@14
|
38 *
|
Chris@14
|
39 * @return $this
|
Chris@14
|
40 */
|
Chris@14
|
41 final public function requirements(array $requirements)
|
Chris@14
|
42 {
|
Chris@14
|
43 $this->route->addRequirements($requirements);
|
Chris@14
|
44
|
Chris@14
|
45 return $this;
|
Chris@14
|
46 }
|
Chris@14
|
47
|
Chris@14
|
48 /**
|
Chris@14
|
49 * Adds options.
|
Chris@14
|
50 *
|
Chris@14
|
51 * @return $this
|
Chris@14
|
52 */
|
Chris@14
|
53 final public function options(array $options)
|
Chris@14
|
54 {
|
Chris@14
|
55 $this->route->addOptions($options);
|
Chris@14
|
56
|
Chris@14
|
57 return $this;
|
Chris@14
|
58 }
|
Chris@14
|
59
|
Chris@14
|
60 /**
|
Chris@14
|
61 * Sets the condition.
|
Chris@14
|
62 *
|
Chris@14
|
63 * @param string $condition
|
Chris@14
|
64 *
|
Chris@14
|
65 * @return $this
|
Chris@14
|
66 */
|
Chris@14
|
67 final public function condition($condition)
|
Chris@14
|
68 {
|
Chris@14
|
69 $this->route->setCondition($condition);
|
Chris@14
|
70
|
Chris@14
|
71 return $this;
|
Chris@14
|
72 }
|
Chris@14
|
73
|
Chris@14
|
74 /**
|
Chris@14
|
75 * Sets the pattern for the host.
|
Chris@14
|
76 *
|
Chris@14
|
77 * @param string $pattern
|
Chris@14
|
78 *
|
Chris@14
|
79 * @return $this
|
Chris@14
|
80 */
|
Chris@14
|
81 final public function host($pattern)
|
Chris@14
|
82 {
|
Chris@14
|
83 $this->route->setHost($pattern);
|
Chris@14
|
84
|
Chris@14
|
85 return $this;
|
Chris@14
|
86 }
|
Chris@14
|
87
|
Chris@14
|
88 /**
|
Chris@14
|
89 * Sets the schemes (e.g. 'https') this route is restricted to.
|
Chris@14
|
90 * So an empty array means that any scheme is allowed.
|
Chris@14
|
91 *
|
Chris@14
|
92 * @param string[] $schemes
|
Chris@14
|
93 *
|
Chris@14
|
94 * @return $this
|
Chris@14
|
95 */
|
Chris@14
|
96 final public function schemes(array $schemes)
|
Chris@14
|
97 {
|
Chris@14
|
98 $this->route->setSchemes($schemes);
|
Chris@14
|
99
|
Chris@14
|
100 return $this;
|
Chris@14
|
101 }
|
Chris@14
|
102
|
Chris@14
|
103 /**
|
Chris@14
|
104 * Sets the HTTP methods (e.g. 'POST') this route is restricted to.
|
Chris@14
|
105 * So an empty array means that any method is allowed.
|
Chris@14
|
106 *
|
Chris@14
|
107 * @param string[] $methods
|
Chris@14
|
108 *
|
Chris@14
|
109 * @return $this
|
Chris@14
|
110 */
|
Chris@14
|
111 final public function methods(array $methods)
|
Chris@14
|
112 {
|
Chris@14
|
113 $this->route->setMethods($methods);
|
Chris@14
|
114
|
Chris@14
|
115 return $this;
|
Chris@14
|
116 }
|
Chris@14
|
117
|
Chris@14
|
118 /**
|
Chris@14
|
119 * Adds the "_controller" entry to defaults.
|
Chris@14
|
120 *
|
Chris@14
|
121 * @param callable|string $controller a callable or parseable pseudo-callable
|
Chris@14
|
122 *
|
Chris@14
|
123 * @return $this
|
Chris@14
|
124 */
|
Chris@14
|
125 final public function controller($controller)
|
Chris@14
|
126 {
|
Chris@17
|
127 $this->route->addDefaults(['_controller' => $controller]);
|
Chris@14
|
128
|
Chris@14
|
129 return $this;
|
Chris@14
|
130 }
|
Chris@14
|
131 }
|