mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-10 03:29:25 +03:00
allow areas annotation for controller class (#1528)
Co-authored-by: pchol <spchols@gmail.com> Co-authored-by: Guilhem Niot <guilhem@gniot.fr>
This commit is contained in:
parent
883d7b6c89
commit
8f646b8484
@ -120,19 +120,24 @@ final class FilteredRouteCollectionBuilder
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$method = $this->controllerReflector->getReflectionMethod(
|
$classAndMethod = $this->controllerReflector->getReflectionClassAndMethod($route->getDefault('_controller'));
|
||||||
$route->getDefault('_controller') ?? ''
|
|
||||||
);
|
if (null === $classAndMethod) {
|
||||||
if (null === $method) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list($class, $method) = $classAndMethod;
|
||||||
|
|
||||||
/** @var Areas|null $areas */
|
/** @var Areas|null $areas */
|
||||||
$areas = $this->annotationReader->getMethodAnnotation(
|
$areas = $this->annotationReader->getMethodAnnotation(
|
||||||
$method,
|
$method,
|
||||||
Areas::class
|
Areas::class
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (null === $areas) {
|
||||||
|
$areas = $this->annotationReader->getClassAnnotation($class, Areas::class);
|
||||||
|
}
|
||||||
|
|
||||||
return (null !== $areas) ? $areas->has($this->area) : false;
|
return (null !== $areas) ? $areas->has($this->area) : false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -177,9 +177,10 @@ class FilteredRouteCollectionBuilderTest extends TestCase
|
|||||||
$routes->add($name, $route);
|
$routes->add($name, $route);
|
||||||
$area = 'area';
|
$area = 'area';
|
||||||
|
|
||||||
|
$reflectionClassStub = $this->createMock(\ReflectionClass::class);
|
||||||
$reflectionMethodStub = $this->createMock(\ReflectionMethod::class);
|
$reflectionMethodStub = $this->createMock(\ReflectionMethod::class);
|
||||||
$controllerReflectorStub = $this->createMock(ControllerReflector::class);
|
$controllerReflectorStub = $this->createMock(ControllerReflector::class);
|
||||||
$controllerReflectorStub->method('getReflectionMethod')->willReturn($reflectionMethodStub);
|
$controllerReflectorStub->method('getReflectionClassAndMethod')->willReturn([$reflectionClassStub, $reflectionMethodStub]);
|
||||||
|
|
||||||
$annotationReader = $this->createMock(Reader::class);
|
$annotationReader = $this->createMock(Reader::class);
|
||||||
$annotationReader
|
$annotationReader
|
||||||
|
Loading…
x
Reference in New Issue
Block a user