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@0
|
26 private $requirements = array();
|
Chris@0
|
27 private $options = array();
|
Chris@0
|
28 private $defaults = array();
|
Chris@0
|
29 private $host;
|
Chris@0
|
30 private $methods = array();
|
Chris@0
|
31 private $schemes = array();
|
Chris@0
|
32 private $condition;
|
Chris@0
|
33
|
Chris@0
|
34 /**
|
Chris@0
|
35 * Constructor.
|
Chris@0
|
36 *
|
Chris@0
|
37 * @param array $data An array of key/value parameters
|
Chris@0
|
38 *
|
Chris@0
|
39 * @throws \BadMethodCallException
|
Chris@0
|
40 */
|
Chris@0
|
41 public function __construct(array $data)
|
Chris@0
|
42 {
|
Chris@0
|
43 if (isset($data['value'])) {
|
Chris@0
|
44 $data['path'] = $data['value'];
|
Chris@0
|
45 unset($data['value']);
|
Chris@0
|
46 }
|
Chris@0
|
47
|
Chris@0
|
48 foreach ($data as $key => $value) {
|
Chris@0
|
49 $method = 'set'.str_replace('_', '', $key);
|
Chris@0
|
50 if (!method_exists($this, $method)) {
|
Chris@0
|
51 throw new \BadMethodCallException(sprintf('Unknown property "%s" on annotation "%s".', $key, get_class($this)));
|
Chris@0
|
52 }
|
Chris@0
|
53 $this->$method($value);
|
Chris@0
|
54 }
|
Chris@0
|
55 }
|
Chris@0
|
56
|
Chris@0
|
57 public function setPath($path)
|
Chris@0
|
58 {
|
Chris@0
|
59 $this->path = $path;
|
Chris@0
|
60 }
|
Chris@0
|
61
|
Chris@0
|
62 public function getPath()
|
Chris@0
|
63 {
|
Chris@0
|
64 return $this->path;
|
Chris@0
|
65 }
|
Chris@0
|
66
|
Chris@0
|
67 public function setHost($pattern)
|
Chris@0
|
68 {
|
Chris@0
|
69 $this->host = $pattern;
|
Chris@0
|
70 }
|
Chris@0
|
71
|
Chris@0
|
72 public function getHost()
|
Chris@0
|
73 {
|
Chris@0
|
74 return $this->host;
|
Chris@0
|
75 }
|
Chris@0
|
76
|
Chris@0
|
77 public function setName($name)
|
Chris@0
|
78 {
|
Chris@0
|
79 $this->name = $name;
|
Chris@0
|
80 }
|
Chris@0
|
81
|
Chris@0
|
82 public function getName()
|
Chris@0
|
83 {
|
Chris@0
|
84 return $this->name;
|
Chris@0
|
85 }
|
Chris@0
|
86
|
Chris@0
|
87 public function setRequirements($requirements)
|
Chris@0
|
88 {
|
Chris@0
|
89 $this->requirements = $requirements;
|
Chris@0
|
90 }
|
Chris@0
|
91
|
Chris@0
|
92 public function getRequirements()
|
Chris@0
|
93 {
|
Chris@0
|
94 return $this->requirements;
|
Chris@0
|
95 }
|
Chris@0
|
96
|
Chris@0
|
97 public function setOptions($options)
|
Chris@0
|
98 {
|
Chris@0
|
99 $this->options = $options;
|
Chris@0
|
100 }
|
Chris@0
|
101
|
Chris@0
|
102 public function getOptions()
|
Chris@0
|
103 {
|
Chris@0
|
104 return $this->options;
|
Chris@0
|
105 }
|
Chris@0
|
106
|
Chris@0
|
107 public function setDefaults($defaults)
|
Chris@0
|
108 {
|
Chris@0
|
109 $this->defaults = $defaults;
|
Chris@0
|
110 }
|
Chris@0
|
111
|
Chris@0
|
112 public function getDefaults()
|
Chris@0
|
113 {
|
Chris@0
|
114 return $this->defaults;
|
Chris@0
|
115 }
|
Chris@0
|
116
|
Chris@0
|
117 public function setSchemes($schemes)
|
Chris@0
|
118 {
|
Chris@0
|
119 $this->schemes = is_array($schemes) ? $schemes : array($schemes);
|
Chris@0
|
120 }
|
Chris@0
|
121
|
Chris@0
|
122 public function getSchemes()
|
Chris@0
|
123 {
|
Chris@0
|
124 return $this->schemes;
|
Chris@0
|
125 }
|
Chris@0
|
126
|
Chris@0
|
127 public function setMethods($methods)
|
Chris@0
|
128 {
|
Chris@0
|
129 $this->methods = is_array($methods) ? $methods : array($methods);
|
Chris@0
|
130 }
|
Chris@0
|
131
|
Chris@0
|
132 public function getMethods()
|
Chris@0
|
133 {
|
Chris@0
|
134 return $this->methods;
|
Chris@0
|
135 }
|
Chris@0
|
136
|
Chris@0
|
137 public function setCondition($condition)
|
Chris@0
|
138 {
|
Chris@0
|
139 $this->condition = $condition;
|
Chris@0
|
140 }
|
Chris@0
|
141
|
Chris@0
|
142 public function getCondition()
|
Chris@0
|
143 {
|
Chris@0
|
144 return $this->condition;
|
Chris@0
|
145 }
|
Chris@0
|
146 }
|