Класс RouteBuilder
Предоставляет возможности для построения маршрутов внутри областей.
Обеспечивает удобный способ построения маршрутов и добавления их в коллекцию маршрутов.
Краткое описание констант
-
string'[0-9]+' -
string'[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}'
Краткое описание свойств
-
$_collectionprotectedКоллекция маршрутов, в которую следует добавлять маршруты.Cake\Routing\RouteCollection -
$_extensionsprotectedРасширения, которые должны быть установлены для подключённых маршрутов.array -
$_namePrefixprotectedПрефикс имени для подключённых маршрутов.string -
$_paramsprotectedПараметры области, если они есть.array -
$_pathprotectedПрефикс пути, используемый этой коллекцией.string - Стандартное отображение метода HTTP => действия контроллера.
array -
$_routeClassprotectedСтандартный класс маршрута, используемый, если он не задан в параметрах connect().string -
$middlewareprotectedarrayСписок middleware, который маршруты в этом билдере получают во время создания.
Краткое описание методов
- __construct() publicКонструктор
- _makeRoute() protectedСоздать объект маршрута или вернуть предоставленный объект.
- _methodRoute() protectedПомощник для создания маршрутов, которые отвечают только на один метод HTTP.
- addExtensions() publicДобавить дополнительные расширения к уже имеющимся в текущей области
- applyMiddleware() publicПрименить middleware к текущей области маршрута.
- connect() publicПодключает новый маршрут.
- delete() publicСоздать маршрут, который отвечает только на запросы DELETE.
- extensions() publicПолучить или установить расширения в области маршрутизации этого билдера.
- fallbacks() publicПодключить
/:controllerи/:controller/:action/*fallback маршруты. - get() publicСоздать маршрут, который отвечает только на запросы GET.
- getExtensions() publicПолучить расширения в области маршрутизации этого билдера.
- getRouteClass() publicПолучить стандартный класс маршрута.
- head() publicСоздать маршрут, который отвечает только на запросы HEAD.
- loadPlugin() publicЗагрузить маршруты из плагина.
- middlewareGroup() publicПрименить набор middleware к группе
- nameExists() publicПроверить, существует ли уже маршрут с заданным именем.
- namePrefix() publicПолучить/установить префикс имени для данной области.
- options() publicСоздать маршрут, который отвечает только на запросы OPTIONS.
- params() publicПолучить имена/значения параметров для этой области.
- patch() publicСоздать маршрут, который отвечает только на запросы PATCH.
- path() publicПолучить путь, для которого предназначена эта область.
- plugin() publicДобавить маршруты плагина.
- post() publicСоздать маршрут, который отвечает только на запросы POST.
- prefix() publicДобавить маршруты с префиксом.
- put() publicСоздать маршрут, который отвечает только на запросы PUT.
- redirect() publicПодключает новый редирект-маршрут в маршрутизатор.
- registerMiddleware() publicРегистрирует middleware с RouteCollection.
- resources() publicГенерирует REST-маршруты ресурсов для заданного(ых) контроллера(ов).
- routeClass() publicПолучить или установить стандартный класс маршрута.
- scope() publicСоздать новую область маршрутизации.
- setExtensions() publicУстановить расширения в области маршрутизации этого билдера.
- setRouteClass() publicУстановить стандартный класс маршрута.
Подробное описание методов
__construct()source public
__construct( Cake\Routing\RouteCollection $collection , string $path , array $params [] , array $options [] )
Конструктор
Параметры
-
routeClass- Стандартный класс маршрута, используемый при добавлении маршрутов. -
extensions- Расширения для подключения при добавлении маршрутов. -
namePrefix- Префикс, добавляемый ко всем именам маршрутов. -
middleware- Имена middleware, маршруты которых должны быть применены.
Параметры
- Cake\Routing\RouteCollection
$collection - Коллекция маршрутов, в которую следует добавлять маршруты.
- string
$path - Префикс пути, для которого предназначена область.
- array
$paramsoptional [] - Параметры маршрутизации области.
- array
$optionsoptional [] - Список параметров.
_makeRoute()source protected
_makeRoute( string|Cake\Routing\Route\Route $route , array $defaults , array $options )
Создать объект маршрута или вернуть предоставленный объект.
Параметры
- string|
Cake\Routing\Route\Route$route - Шаблон маршрута или объект маршрута.
- array
$defaults - Стандартные параметры.
- array
$options - Дополнительные параметры опций.
Возвращает
Cake\Routing\Route\RouteИсключения
InvalidArgumentExceptionкогда класс маршрута или объект маршрута неверны.
BadMethodCallException
когда создаваемый маршрут конфликтует с текущей областью
_methodRoute()source protected
_methodRoute( string $method , string $template , array $target , string $name )
Помощник для создания маршрутов, которые отвечают только на один HTTP-метод.
Параметры
- строка
$method - Имя HTTP-метода для сопоставления.
- строка
$template - Шаблон URL для использования.
- массив
$target Массив, описывающий целевые параметры маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которым направлен этот маршрут.
- строка
$name - Имя маршрута.
Возвращаемое значение
Cake\Routing\Route\RouteaddExtensions()source public
addExtensions( string|array $extensions )
Добавить дополнительные расширения к существующим в текущем контексте
Параметры
- строка|массив
$extensions - Одно или несколько расширений для добавления
applyMiddleware()source public
applyMiddleware( ... $names )
Применение middleware к текущему контексту маршрута.
Требуется регистрация middleware через registerMiddleware()
Параметры
- ...
$names - $names Имена middleware, которые нужно применить к текущему контексту.
Возвращаемое значение
$this
См. также
\Cake\Routing\RouteCollection::addMiddlewareToScope()connect()source public
connect( string $route , array $defaults [] , array $options [] )
Подключает новый маршрут.
Маршруты — способ сопоставления URL-запросов с объектами в вашем приложении. По сути, маршруты представляют собой набор регулярных выражений, используемых для сопоставления запросов с пунктами назначения.
Примеры:
$routes->connect('/:controller/:action/*'); Первый параметр будет использоваться в качестве имени контроллера, а второй — в качестве имени действия. Синтаксис «/*/» делает этот маршрут жадным, то есть он будет сопоставлять запросы, такие как /posts/index, а также запросы, такие как /posts/edit/1/foo/bar.
$routes->connect('/home-page', ['controller' => 'Pages', 'action' => 'display', 'home']); Это демонстрирует использование значений параметров маршрута по умолчанию. И предоставление параметров маршрутизации для статического маршрута.
$routes->connect(
'/:lang/:controller/:action/:id',
[],
['id' => '[0-9]+', 'lang' => '[a-z]{3}']
); Показывает подключение маршрута с настраиваемыми параметрами маршрута, а также предоставление шаблонов для этих параметров. Шаблоны для параметров маршрутизации не нуждаются в группах захвата, так как для каждого параметра маршрутизации будет добавлена отдельная группа.
$options предлагает несколько «специальных» ключей, которые имеют особое значение в массиве $options.
-
routeClassиспользуется для расширения и изменения того, как отдельные маршруты анализируют запросы и обрабатывают обратную маршрутизацию с помощью пользовательского класса маршрутизации. Пример:'routeClass' => 'SlugRoute' -
passиспользуется для определения, какие параметры маршрута следует перенести в массив pass. Добавление параметра в pass удалит его из обычного массива маршрута. Пример:'pass' => ['slug']. -
persistиспользуется для определения параметров маршрута, которые автоматически включаются при генерации новых URL-адресов. Вы можете переопределить постоянные параметры, повторно определив их в URL-адресе, или удалить их, установив параметр вfalse. Пример:'persist' => ['lang'] -
multibytePatternУстановите в значение true для активации поддержки многобайтовых шаблонов в шаблонах параметров маршрута. -
_nameиспользуется для определения определенного имени маршрутов. Это может использоваться для оптимизации обращений к маршрутам. Если не определено, для каждого подключенного маршрута будет сгенерировано имя. -
_ext— массив расширений файлов, которые будут извлечены из URL-адреса, если они присутствуют. См. \Cake\Routing\RouteCollection::setExtensions(). -
_methodСопоставлять запросы только со специфическими HTTP-методами.
Пример использования условия _method:
$routes->connect('/tasks', ['controller' => 'Tasks', 'action' => 'index', '_method' => 'GET']); Этот маршрут будет сопоставляться только с запросами GET. Запросы POST не будут сопоставляться с этим маршрутом.
Параметры
- строка
$route - Строка, описывающая шаблон маршрута
- массив
$defaultsопционально [] Массив, описывающий параметры маршрута по умолчанию. Эти параметры будут использоваться по умолчанию и могут предоставлять параметры маршрутизации, которые не являются динамическими. См. выше.
- массив
$optionsопционально [] Массив, сопоставляющий именованные элементы в маршруте с регулярными выражениями, которым этот элемент должен соответствовать. Также содержит дополнительные параметры, такие как перенос параметров маршрута в аргументы вызова, предоставление шаблонов для параметров маршрутизации и предоставление имени пользовательского класса маршрутизации.
Возвращаемое значение
Cake\Routing\Route\RouteВыбрасывает
InvalidArgumentExceptionBadMethodCallException
delete()source public
delete( string $template , array $target , string $name null )
Создание маршрута, который реагирует только на запросы DELETE.
Параметры
- строка
$template - Шаблон URL для использования.
- массив
$target Массив, описывающий целевые параметры маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которым направлен этот маршрут.
- строка
$nameопционально null - Имя маршрута.
Возвращаемое значение
Cake\Routing\Route\Routeextensions()source public
extensions( null|string|array $extensions null )
Получение или установка расширений в контексте этого билдера маршрутов.
Будущие маршруты, подключенные через этот билдер, будут иметь применённые расширения. Однако установка расширений не изменяет существующие маршруты.
Устарело
3.5.0 Используйте getExtensions/setExtensions вместо этого.Параметры
- null|строка|массив
$extensionsопционально null - Расширения для использования или null.
Возвращаемое значение
массив|nullfallbacks()source public
fallbacks( string|null $routeClass null )
Подключение маршрутов обратной связи /:controller и /:controller/:action/*.
Это метод-короткая запись для подключения маршрутов обратной связи в заданном контексте.
Параметры
- строка|null
$routeClassопционально null Класс маршрута для использования, использует по умолчанию routeClass, если не указано
get()source public
get( string $template , array $target , string $name null )
Создание маршрута, который отвечает только на запросы GET.
Параметры
- строка
$template - Шаблон URL для использования.
- массив
$target Массив, описывающий целевые параметры маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которым направлен этот маршрут.
- строка
$nameопционально null - Имя маршрута.
Возвращаемое значение
Cake\Routing\Route\RoutegetExtensions()source public
getExtensions( )
Получение расширений в контексте этого билдера маршрутов.
Возвращаемое значение
массивgetRouteClass()source public
getRouteClass( )
Получение класса маршрута по умолчанию.
Возвращаемое значение
строкаhead()source public
head( string $template , array $target , string $name null )
Создание маршрута, который отвечает только на запросы HEAD.
Параметры
- строка
$template - Шаблон URL для использования.
- массив
$target Массив, описывающий целевые параметры маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которым направлен этот маршрут.
- строка
$nameопционально null - Имя маршрута.
Возвращаемое значение
Cake\Routing\Route\RouteloadPlugin()source public
loadPlugin( string $name , string $file 'routes.php' )
Загрузка маршрутов из плагина.
Файл маршрутов будет иметь локальную переменную с именем $routes , содержащую текущий экземпляр RouteBuilder.
Параметры
- строка
$name - Имя плагина
- строка
$fileопционально 'routes.php' - Файл маршрутов для загрузки. По умолчанию
routes.php
Выбрасывает
Cake\Core\Exception\MissingPluginExceptionЕсли плагин не загружен.
InvalidArgumentException
Если у плагина нет файла маршрутов.
middlewareGroup()source public
middlewareGroup( string $name , array $middlewareNames )
Применить набор middleware к группе
Параметры
- строка
$name - Имя группы middleware
- массив
$middlewareNames - Имена middleware
Возвращает
$this
nameExists()source public
nameExists( string $name )
Проверяет, существует ли маршрут с заданным именем.
Параметры
- строка
$name - Имя.
Возвращает
booleannamePrefix()source public
namePrefix( string|null $value null )
Получить/установить префикс имени для этого области видимости.
Изменение префикса имени повлияет только на префикс, используемый для маршрутов, подключенных после изменения префикса.
Параметры
- строка|null
$valueнеобязательно null - Значение для установки или null.
Возвращает
строкаoptions()source public
options( string $template , array $target , string $name null )
Создать маршрут, который отвечает только на запросы OPTIONS.
Параметры
- строка
$template - Шаблон URL для использования.
- массив
$target Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает этот маршрут.
- строка
$nameнеобязательно null - Имя маршрута.
Возвращает
Cake\Routing\Route\Routeparams()source public
params( )
Получить имена/значения параметров для этой области видимости.
Возвращает
массивpatch()source public
patch( string $template , array $target , string $name null )
Создать маршрут, который отвечает только на запросы PATCH.
Параметры
- строка
$template - Шаблон URL для использования.
- массив
$target Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает этот маршрут.
- строка
$nameнеобязательно null - Имя маршрута.
Возвращает
Cake\Routing\Route\Routepath()source public
path( )
Получить путь, для которого предназначена эта область видимости.
Возвращает
строкаplugin()source public
plugin( string $name , array|callable $options [] , callable|null $callback null )
Добавить маршруты плагина.
Этот метод создает новую область видимости коллекции маршрутов, которая включает в себя соответствующую информацию о плагине.
Имя плагина будет склонено к нижнему регистру, чтобы создать путь маршрутизации. Если вам нужен пользовательский путь, используйте параметр path.
Маршруты, подключенные в рамках области видимости, будут иметь правильный префикс пути, а также соответствующий ключ маршрутизации плагина.
Параметры
- строка
$name - Имя плагина для построения маршрутов
- массив|вызов
$optionsнеобязательно [] - Используемые параметры или вызов функции
- вызов|null
$callbackнеобязательно null Вызов функции, который строит маршруты плагина. Требуется только при указании параметра $options.
post()source public
post( string $template , array $target , string $name null )
Создать маршрут, который отвечает только на запросы POST.
Параметры
- строка
$template - Шаблон URL для использования.
- массив
$target Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает этот маршрут.
- строка
$nameнеобязательно null - Имя маршрута.
Возвращает
Cake\Routing\Route\Routeprefix()source public
prefix( string $name , array|callable $params [] , callable $callback null )
Добавить маршруты с префиксом.
Этот метод создает область видимости коллекции маршрутов, которая включает в себя соответствующую информацию о префиксе.
Параметр $name используется для генерации имени параметра маршрутизации. Например, путь admin приведет к применению 'prefix' => 'admin' ко всем подключенным маршрутам.
Вы можете повторно открыть префикс столько раз, сколько необходимо, а также вкладывать префиксы. Вложенные префиксы приведут к значениям префиксов, таким как admin/api, что соответствует пространству имен Controller\Admin\Api\.
Если вам нужно использовать префикс с точками, например: '/api/v1.0', используйте ключ 'path' для аргумента $params:
$route->prefix('api', function($route) {
$route->prefix('v10', ['path' => '/v1.0'], function($route) {
// Translates to `Controller\Api\V10\` namespace
});
}); Параметры
- строка
$name - Имя используемого префикса.
- массив|вызов
$paramsнеобязательно [] Массив значений по умолчанию для маршрутизации, добавляемых к каждому подключенному маршруту. Если параметров нет, этот аргумент может быть функцией.
- вызов
$callbackнеобязательно null - Функция для построения маршрутов с префиксом.
Выбрасывает
InvalidArgumentExceptionЕсли не передана валидная функция
put()source public
put( string $template , array $target , string $name null )
Создать маршрут, который отвечает только на запросы PUT.
Параметры
- строка
$template - Шаблон URL для использования.
- массив
$target Массив, описывающий параметры целевого маршрута. Эти параметры должны указывать плагин, префикс, контроллер и действие, к которому указывает этот маршрут.
- строка
$nameнеобязательно null - Имя маршрута.
Возвращает
Cake\Routing\Route\Routeredirect()source public
redirect( string $route , array|string $url , array $options [] )
Подключает новый маршрут перенаправления в маршрутизаторе.
Маршруты перенаправления отличаются от обычных маршрутов тем, что они выполняют фактическое перенаправление заголовков, если совпадение найдено. Перенаправление может происходить внутри вашего приложения или перенаправлять на внешний ресурс.
Примеры:
$routes->redirect('/home/*', ['controller' => 'posts', 'action' => 'view']); Перенаправляет /home/* на /posts/view и передает параметры в /posts/view. Использование массива в качестве пункта назначения перенаправления позволяет использовать другие маршруты для определения, на какой URL-адрес должна быть перенаправлена строка URL.
$routes->redirect('/posts/*', 'http://google.com', ['status' => 302]); Перенаправляет /posts/* на http://google.com со статусом HTTP 302
Параметры:
-
statusУстанавливает статус HTTP (по умолчанию 301) -
persistПередает параметры перенаправленному маршруту, если это возможно. Это полезно для жадных маршрутов; маршруты, заканчивающиеся на*, являются жадными. Так как вы можете переназначать URL-адреса и не терять переданные аргументы.
Параметры
- строка
$route - Строка, описывающая шаблон маршрута
- массив|строка
$url - URL для перенаправления. Может быть строкой или URL на основе массива Cake.
- массив
$optionsнеобязательно [] Массив, сопоставляющий именованные элементы в маршруте с регулярными выражениями, которым должен соответствовать данный элемент. Также содержит дополнительные параметры, такие как параметры маршрута, которые должны быть переданы в переданные аргументы, а также шаблоны для параметров маршрутизации.
registerMiddleware()source public
registerMiddleware( string $name , callable $middleware )
Зарегистрировать middleware в RouteCollection.
После регистрации middleware его можно применить к текущей области видимости маршрутизации или любым дочерним областям видимости, которые используют ту же RouteCollection.
Параметры
- строка
$name - Имя middleware. Используется при применении middleware к области видимости.
- вызов
$middleware - Объект middleware для регистрации.
Возвращает
$this
См. также
\Cake\Routing\RouteCollectionresources()source public
resources( string $name , array|callable $options [] , callable|null $callback null )
Генерирует маршруты REST-ресурсов для заданного(ых) контроллера(ов).
Быстрый способ сгенерировать стандартные маршруты для набора REST-ресурсов (контроллера(ов)).
Использование
Подключение маршрутов ресурсов для контроллера приложения:
$routes->resources('Posts'); Подключение маршрутов ресурсов для контроллера Comments в плагине Comments:
Router::plugin('Comments', function ($routes) {
$routes->resources('Comments');
}); Плагины будут создавать маршруты ресурсов с использованием нижнего регистра и подчеркивания. Например, /comments/comments
Подключение маршрутов ресурсов для контроллера Articles в префиксе Admin:
Router::prefix('admin', function ($routes) {
$routes->resources('Articles');
}); Префиксы будут создавать маршруты ресурсов с использованием нижнего регистра и подчеркивания. Например, /admin/posts
Вы можете создать вложенные ресурсы, передав обратный вызов в:
$routes->resources('Articles', function ($routes) {
$routes->resources('Comments');
}); Вышеперечисленное сгенерирует маршруты ресурсов как для /articles, так и для /articles/:article_id/comments. Вы можете использовать опцию map, чтобы подключить дополнительные методы ресурсов:
$routes->resources('Articles', [
'map' => ['deleteAll' => ['action' => 'deleteAll', 'method' => 'DELETE']]
]); В дополнение к стандартным маршрутам, это также подключит маршрут для /articles/delete_all. По умолчанию сегмент пути соответствует имени ключа. Вы можете использовать ключ «path» в определении ресурса для настройки имени пути.
Вы можете использовать опцию inflect, чтобы изменить способ генерации сегментов пути:
$routes->resources('PaymentTypes', ['inflect' => 'dasherize']); Это сгенерирует маршруты, подобные /payment-types, а не /payment_types
Параметры:
- 'id' - фрагмент регулярного выражения для использования при сопоставлении идентификаторов. По умолчанию соответствует целочисленным значениям и UUID.
- 'inflect' - выбор метода склонения, используемого для имени ресурса. По умолчанию 'underscore'.
- 'only' - подключить только указанный список действий.
- 'actions' - переопределить имена методов, используемых для подключения действий.
- 'map' - дополнительные маршруты ресурсов, которые необходимо подключить. Если вы определили 'only' и 'map', убедитесь, что ваши сопоставленные методы также находятся в списке 'only'.
- 'prefix' - определение префикса маршрутизации для контроллера ресурса. Если текущий контекст определяет префикс, этот префикс будет добавлен к нему.
- 'connectOptions' - пользовательские параметры для подключения маршрутов.
- 'path' - изменить путь, чтобы он не соответствовал имени ресурса. Например, контроллер ArticlesController доступен по адресу
/posts
Параметры
- строка
$name - Имя контроллера для подключения маршрутов ресурсов.
- массив|обратный вызов
$optionsнеобязательно [] - Параметры для использования при генерации маршрутов REST или обратный вызов.
- обратный вызов|null
$callbackнеобязательно null Необязательный обратный вызов, который будет выполнен во вложенном контексте. Вложенные контексты наследуют существующий путь и параметр 'id'.
routeClass()source public
routeClass( string|null $routeClass null )
Получение или установка стандартного класса маршрута.
Устаревшее
3.5.0 Используйте getRouteClass/setRouteClass вместо этого.Параметры
- строка|null
$routeClassнеобязательно null - Имя класса.
Возвращает
строка|nullscope()source public
scope( string $path , array|callable $params , callable|null $callback null )
Создание нового контекста маршрутизации.
Контексты, созданные с помощью этого метода, будут наследовать свойства контекста, к которому они добавлены. Это означает, что и текущий путь, и параметры будут добавлены к предоставленным параметрам.
Параметры
- строка
$path - Путь для создания контекста.
- массив|обратный вызов
$params - Либо параметры для добавления к маршрутам, либо обратный вызов.
- обратный вызов|null
$callbackнеобязательно null Обратный вызов для вызова, который строит маршруты плагина. Требуется только при определении параметра $params.
Исключения
InvalidArgumentExceptionесли нет параметра обратного вызова.
setExtensions()source public
setExtensions( string|array $extensions )
Установить расширения в области действия этого генератора маршрутов.
Будущие маршруты, подключенные через этого генератора, будут иметь применённые расширения. Однако установка расширений не изменяет существующие маршруты.
Параметры
- строка|массив
$extensions - Расширения для установки.
Возвращает
$this
setRouteClass()source public
setRouteClass( string $routeClass )
Установить стандартный класс маршрута.
Параметры
- строка
$routeClass - Имя класса.
Возвращает
$this
Подробное описание свойств
$_collectionsource
protected Cake\Routing\RouteCollection
Коллекция маршрутов, к которой должны быть добавлены маршруты.
$_extensionssource
protected массив
Расширения, которые должны быть установлены для подключенных маршрутов.
[]
$_resourceMapsource
protected static массив
Стандартное отображение HTTP-метода => действия контроллера.
[
'index' => ['action' => 'index', 'method' => 'GET', 'path' => ''],
'create' => ['action' => 'add', 'method' => 'POST', 'path' => ''],
'view' => ['action' => 'view', 'method' => 'GET', 'path' => ':id'],
'update' => ['action' => 'edit', 'method' => ['PUT', 'PATCH'], 'path' => ':id'],
'delete' => ['action' => 'delete', 'method' => 'DELETE', 'path' => ':id'],
] $_routeClasssource
protected строка
Стандартный класс маршрута, который следует использовать, если он не указан в параметрах connect().
'Cake\Routing\Route\Route'
$middlewaresource
protected массив
Список middleware, которые добавляются маршрутам в этом генераторе во время построения.
[]
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.4/class-Cake.Routing.RouteBuilder.html