8000 [Routing] Added an extension point for globals in AnnotationClassLoader · symfony/symfony@8f7524e · GitHub
[go: up one dir, main page]

Skip to content

Commit 8f7524e

Browse files
committed
[Routing] Added an extension point for globals in AnnotationClassLoader
1 parent 147c82b commit 8f7524e

File tree

1 file changed

+54
-47
lines changed

1 file changed

+54
-47
lines changed

src/Symfony/Component/Routing/Loader/AnnotationClassLoader.php

Lines changed: 54 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -108,58 +108,12 @@ public function load($class, $type = null)
108108
throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $class));
109109
}
110110

111-
$globals = array(
112-
'path' => '',
113-
'requirements' => array(),
114-
'options' => array(),
115-
'defaults' => array(),
116-
'schemes' => array(),
117-
'methods' => array(),
118-
'host' => '',
119-
'condition' => '',
120-
);
121-
122111
$class = new \ReflectionClass($class);
123112
if ($class->isAbstract()) {
124113
throw new \InvalidArgumentException(sprintf('Annotations from class "%s" cannot be read as it is abstract.', $class));
125114
}
126115

127-
if ($annot = $this->reader->getClassAnnotation($class, $this->routeAnnotationClass)) {
128-
// for BC reasons
129-
if (null !== $annot->getPath()) {
130-
$globals['path'] = $annot->getPath();
131-
} elseif (null !== $annot->getPattern()) {
132-
$globals['path'] = $annot->getPattern();
133-
}
134-
135-
if (null !== $annot->getRequirements()) {
136-
$globals['requirements'] = $annot->getRequirements();
137-
}
138-
139-
if (null !== $annot->getOptions()) {
140-
$globals['options'] = $annot->getOptions();
141-
}
142-
143-
if (null !== $annot->getDefaults()) {
144-
$globals['defaults'] = $annot->getDefaults();
145-
}
146-
147-
if (null !== $annot->getSchemes()) {
148-
$globals['schemes'] = $annot->getSchemes();
149-
}
150-
151-
if (null !== $annot->getMethods()) {
152-
$globals['methods'] = $annot->getMethods();
153-
}
154-
155-
if (null !== $annot->getHost()) {
156-
$globals['host'] = $annot->getHost();
157-
}
158-
159-
if (null !== $annot->getCondition()) {
160-
$globals['condition'] = $annot->getCondition();
161-
}
162-
}
116+
$globals = $this->getGlobals($class);
163117

164118
$collection = new RouteCollection();
165119
$collection->addResource(new FileResource($class->getFileName()));
@@ -252,5 +206,58 @@ protected function getDefaultRouteName(\ReflectionClass $class, \ReflectionMetho
252206
return $name;
253207
}
254208

209+
protected function getGlobals(\ReflectionClass $class)
210+
{
211+
$globals = array(
212+
'path' => '',
213+
'requirements' => array(),
214+
'options' => array(),
215+
'defaults' => array(),
216+
'schemes' => array(),
217+
'methods' => array(),
218+
'host' => '',
219+
'condition' => '',
220+
);
221+
222+
if ($annot = $this->reader->getClassAnnotation($class, $this->routeAnnotationClass)) {
223+
// for BC reasons
224+
if (null !== $annot->getPath()) {
225+
$globals['path'] = $annot->getPath();
226+
} elseif (null !== $annot->getPattern()) {
227+
$globals['path'] = $annot->getPattern();
228+
}
229+
230+
if (null !== $annot->getRequirements()) {
231+
$globals['requirements'] = $annot->getRequirements();
232+
}
233+
234+
if (null !== $annot->getOptions()) {
235+
$globals['options'] = $annot->getOptions();
236+
}
237+
238+
if (null !== $annot->getDefaults()) {
239+
$globals['defaults'] = $annot->getDefaults();
240+
}
241+
242+
if (null !== $annot->getSchemes()) {
243+
$globals['schemes'] = $annot->getSchemes();
244+
}
245+
246+
if (null !== $annot->getMethods()) {
247+
$globals['methods'] = $annot->getMethods();
248+
}
249+
250+
if (null !== $annot->getHost()) {
251+
$globals['host'] = $annot->getHost();
252+
}
253+
254+
if (null !== $annot->getCondition()) {
255+
$globals['condition'] = $annot->getCondition();
256+
}
257+
}
258+
259+
return $globals;
260+
}
261+
255262
abstract protected function configureRoute(Route $route, \ReflectionClass $class, \ReflectionMethod $method, $annot);
256263
}

0 commit comments

Comments
 (0)
0