AnnotationClassLoader
абстрактный класс AnnotationClassLoader реализует LoaderInterface
AnnotationClassLoader загружает информацию о маршрутизации из класса PHP и его методов.
Вам нужно определить реализацию метода getRouteDefaults(). В большинстве случаев этот метод должен определять вызываемый PHP-вызов для маршрута (контроллер в терминологии MVC).
Аннотация @Route может быть установлена на классе (для глобальных параметров) и на каждом методе.
Основное значение аннотации @Route — это путь маршрута. Аннотация также распознает несколько параметров: requirements, options, defaults, schemes, methods, host и name. Параметр name является обязательным. Вот пример того, как вы можете его использовать:
/**
* @Route("/Blog")
* /
class Blog
{
/**
* @Route("/", name="blog_index")
* /
public function index()
{
}
/**
* @Route("/{id}", name="blog_post", requirements = {"id" = "\d+"})
* /
public function show()
{
}
}
Свойства
| protected | $reader | ||
| protected string | $routeAnnotationClass | ||
| protected int | $defaultRouteIndex |
Методы
| __construct(Reader $reader) | ||
| setRouteAnnotationClass(string $class) Устанавливает класс аннотаций для чтения свойств маршрута. | ||
| load(string $class, string|null $type = null) Загрузка аннотаций из класса. | ||
| addRoute(RouteCollection $collection, $annot, $globals, ReflectionClass $class, ReflectionMethod $method) | ||
| bool | supports(mixed $resource, string|null $type = null) Возвращает, поддерживает ли данный класс указанный ресурс. | |
| setResolver(LoaderResolverInterface $resolver) Устанавливает решатель загрузчиков. | ||
| LoaderResolverInterface | getResolver() Возвращает решатель загрузчиков. | |
| string | getDefaultRouteName(ReflectionClass $class, ReflectionMethod $method) Возвращает имя по умолчанию маршрута для метода класса. | |
| getGlobals(ReflectionClass $class) | ||
| createRoute($path, $defaults, $requirements, $options, $host, $schemes, $methods, $condition) | ||
| configureRoute(Route $route, ReflectionClass $class, ReflectionMethod $method, $annot) |
Подробности
__construct(Reader $reader)
Параметры
| Reader | $reader |
setRouteAnnotationClass(string $class)
Устанавливает класс аннотаций для чтения свойств маршрута.
Параметры
| string | $class | Полное имя класса |
load(string $class, string|null $type = null)
Загрузка аннотаций из класса.
Параметры
| string | $class | Имя класса |
| string|null | $type | Тип ресурса или null, если неизвестен |
Исключения
| InvalidArgumentException | При невозможности парсинга маршрута |
protected addRoute(RouteCollection $collection, $annot, $globals, ReflectionClass $class, ReflectionMethod $method)
Параметры
| RouteCollection | $collection | |
| $annot | ||
| $globals | ||
| ReflectionClass | $class | |
| ReflectionMethod | $method |
bool supports(mixed $resource, string|null $type = null)
Возвращает, поддерживает ли данный класс указанный ресурс.
Параметры
| mixed | $resource | Ресурс |
| string|null | $type | Тип ресурса или null, если неизвестен |
Возвращаемое значение
| bool | True, если класс поддерживает данный ресурс, иначе false |
setResolver(LoaderResolverInterface $resolver)
Устанавливает решатель загрузчиков.
Параметры
| LoaderResolverInterface | $resolver |
LoaderResolverInterface getResolver()
Возвращает решатель загрузчиков.
Возвращаемое значение
| LoaderResolverInterface | Экземпляр LoaderResolverInterface |
protected string getDefaultRouteName(ReflectionClass $class, ReflectionMethod $method)
Возвращает имя по умолчанию маршрута для метода класса.
Параметры
| ReflectionClass | $class | |
| ReflectionMethod | $method |
Возвращаемое значение
| string |
protected getGlobals(ReflectionClass $class)
Параметры
| ReflectionClass | $class |
protected createRoute($path, $defaults, $requirements, $options, $host, $schemes, $methods, $condition)
Параметры
| $path | ||
| $defaults | ||
| $requirements | ||
| $options | ||
| $host | ||
| $schemes | ||
| $methods | ||
| $condition |
abstract protected configureRoute(Route $route, ReflectionClass $class, ReflectionMethod $method, $annot)
Параметры
| Route | $route | |
| ReflectionClass | $class | |
| ReflectionMethod | $method | |
| $annot |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Routing/Loader/AnnotationClassLoader.html