Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 /*
|
Chris@0
|
4 * This file is part of the Symfony package.
|
Chris@0
|
5 *
|
Chris@0
|
6 * (c) Fabien Potencier <fabien@symfony.com>
|
Chris@0
|
7 *
|
Chris@0
|
8 * For the full copyright and license information, please view the LICENSE
|
Chris@0
|
9 * file that was distributed with this source code.
|
Chris@0
|
10 */
|
Chris@0
|
11
|
Chris@0
|
12 namespace Symfony\Component\Routing\Annotation;
|
Chris@0
|
13
|
Chris@0
|
14 /**
|
Chris@0
|
15 * Annotation class for @Route().
|
Chris@0
|
16 *
|
Chris@0
|
17 * @Annotation
|
Chris@0
|
18 * @Target({"CLASS", "METHOD"})
|
Chris@0
|
19 *
|
Chris@0
|
20 * @author Fabien Potencier <fabien@symfony.com>
|
Chris@0
|
21 */
|
Chris@0
|
22 class Route
|
Chris@0
|
23 {
|
Chris@0
|
24 private $path;
|
Chris@0
|
25 private $name;
|
Chris@17
|
26 private $requirements = [];
|
Chris@17
|
27 private $options = [];
|
Chris@17
|
28 private $defaults = [];
|
Chris@0
|
29 private $host;
|
Chris@17
|
30 private $methods = [];
|
Chris@17
|
31 private $schemes = [];
|
Chris@0
|
32 private $condition;
|
Chris@0
|
33
|
Chris@0
|
34 /**
|
Chris@0
|
35 * @param array $data An array of key/value parameters
|
Chris@0
|
36 *
|
Chris@0
|
37 * @throws \BadMethodCallException
|
Chris@0
|
38 */
|
Chris@0
|
39 public function __construct(array $data)
|
Chris@0
|
40 {
|
Chris@0
|
41 if (isset($data['value'])) {
|
Chris@0
|
42 $data['path'] = $data['value'];
|
Chris@0
|
43 unset($data['value']);
|
Chris@0
|
44 }
|
Chris@0
|
45
|
Chris@0
|
46 foreach ($data as $key => $value) {
|
Chris@0
|
47 $method = 'set'.str_replace('_', '', $key);
|
Chris@0
|
48 if (!method_exists($this, $method)) {
|
Chris@17
|
49 throw new \BadMethodCallException(sprintf('Unknown property "%s" on annotation "%s".', $key, \get_class($this)));
|
Chris@0
|
50 }
|
Chris@0
|
51 $this->$method($value);
|
Chris@0
|
52 }
|
Chris@0
|
53 }
|
Chris@0
|
54
|
Chris@0
|
55 public function setPath($path)
|
Chris@0
|
56 {
|
Chris@0
|
57 $this->path = $path;
|
Chris@0
|
58 }
|
Chris@0
|
59
|
Chris@0
|
60 public function getPath()
|
Chris@0
|
61 {
|
Chris@0
|
62 return $this->path;
|
Chris@0
|
63 }
|
Chris@0
|
64
|
Chris@0
|
65 public function setHost($pattern)
|
Chris@0
|
66 {
|
Chris@0
|
67 $this->host = $pattern;
|
Chris@0
|
68 }
|
Chris@0
|
69
|
Chris@0
|
70 public function getHost()
|
Chris@0
|
71 {
|
Chris@0
|
72 return $this->host;
|
Chris@0
|
73 }
|
Chris@0
|
74
|
Chris@0
|
75 public function setName($name)
|
Chris@0
|
76 {
|
Chris@0
|
77 $this->name = $name;
|
Chris@0
|
78 }
|
Chris@0
|
79
|
Chris@0
|
80 public function getName()
|
Chris@0
|
81 {
|
Chris@0
|
82 return $this->name;
|
Chris@0
|
83 }
|
Chris@0
|
84
|
Chris@0
|
85 public function setRequirements($requirements)
|
Chris@0
|
86 {
|
Chris@0
|
87 $this->requirements = $requirements;
|
Chris@0
|
88 }
|
Chris@0
|
89
|
Chris@0
|
90 public function getRequirements()
|
Chris@0
|
91 {
|
Chris@0
|
92 return $this->requirements;
|
Chris@0
|
93 }
|
Chris@0
|
94
|
Chris@0
|
95 public function setOptions($options)
|
Chris@0
|
96 {
|
Chris@0
|
97 $this->options = $options;
|
Chris@0
|
98 }
|
Chris@0
|
99
|
Chris@0
|
100 public function getOptions()
|
Chris@0
|
101 {
|
Chris@0
|
102 return $this->options;
|
Chris@0
|
103 }
|
Chris@0
|
104
|
Chris@0
|
105 public function setDefaults($defaults)
|
Chris@0
|
106 {
|
Chris@0
|
107 $this->defaults = $defaults;
|
Chris@0
|
108 }
|
Chris@0
|
109
|
Chris@0
|
110 public function getDefaults()
|
Chris@0
|
111 {
|
Chris@0
|
112 return $this->defaults;
|
Chris@0
|
113 }
|
Chris@0
|
114
|
Chris@0
|
115 public function setSchemes($schemes)
|
Chris@0
|
116 {
|
Chris@17
|
117 $this->schemes = \is_array($schemes) ? $schemes : [$schemes];
|
Chris@0
|
118 }
|
Chris@0
|
119
|
Chris@0
|
120 public function getSchemes()
|
Chris@0
|
121 {
|
Chris@0
|
122 return $this->schemes;
|
Chris@0
|
123 }
|
Chris@0
|
124
|
Chris@0
|
125 public function setMethods($methods)
|
Chris@0
|
126 {
|
Chris@17
|
127 $this->methods = \is_array($methods) ? $methods : [$methods];
|
Chris@0
|
128 }
|
Chris@0
|
129
|
Chris@0
|
130 public function getMethods()
|
Chris@0
|
131 {
|
Chris@0
|
132 return $this->methods;
|
Chris@0
|
133 }
|
Chris@0
|
134
|
Chris@0
|
135 public function setCondition($condition)
|
Chris@0
|
136 {
|
Chris@0
|
137 $this->condition = $condition;
|
Chris@0
|
138 }
|
Chris@0
|
139
|
Chris@0
|
140 public function getCondition()
|
Chris@0
|
141 {
|
Chris@0
|
142 return $this->condition;
|
Chris@0
|
143 }
|
Chris@0
|
144 }
|