Spec-Zone.ru › CakePHP 3.3

Класс RouteBuilder

Предоставляет возможности для создания маршрутов внутри областей.

Обеспечивает удобный способ создания маршрутов и их добавления в коллекцию маршрутов.

Пространство имён: Cake\Routing
Расположение: Routing/RouteBuilder.php

Краткое описание констант

  • string

    ID
    '[0-9]+'
  • string

    UUID
    '[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}'

Краткое описание свойств

  • $_collection protected
    Cake\Routing\RouteCollection
    Коллекция маршрутов, в которую следует добавлять новые маршруты.
  • $_extensions protected
    array
    Расширения, которые должны быть установлены для подключённых маршрутов.
  • $_namePrefix protected
    string
    Префикс имени для подключённых маршрутов.
  • $_params protected
    array
    Параметры области, если таковые имеются.
  • $_path protected
    string
    Префикс пути области, используемый этой коллекцией.
  • $_resourceMap protected static
    array
    Карта соответствия метода HTTP по умолчанию => действию контроллера.
  • $_routeClass protected
    string
    Класс маршрута по умолчанию, используемый, если в опциях connect() не указан другой.

Краткое описание методов

  • __construct() public
    Конструктор
  • _makeRoute() protected
    Создать объект маршрута или вернуть предоставленный объект.
  • addExtensions() public
    Добавить дополнительные расширения к уже имеющимся в текущей области
  • connect() public
    Подключает новый маршрут.
  • extensions() public
    Получить или установить расширения в области данного билдера маршрутов.
  • fallbacks() public
    Подключает /:controller и /:controller/:action/* обратные маршруты.
  • nameExists() public
    Проверяет, существует ли маршрут с данным именем.
  • namePrefix() public
    Получить/установить префикс имени для данной области.
  • params() public
    Получить имена/значения параметров для данной области.
  • path() public
    Получить путь для данной области.
  • plugin() public
    Добавить маршруты плагинов.
  • prefix() public
    Добавить маршруты с префиксом.
  • redirect() public
    Подключает новый перенаправляющий маршрут в маршрутизатор.
  • resources() public
    Генерировать маршруты REST-ресурсов для заданных контроллеров.
  • routeClass() public
    Получить или установить класс маршрута по умолчанию.
  • scope() public
    Создать новую область маршрутизации.

Подробное описание методов

__construct()source public

__construct( Cake\Routing\RouteCollection $collection , string $path , array $params [] , array $options [] )

Конструктор

Параметры

  • routeClass - Класс маршрута по умолчанию, используемый при добавлении маршрутов.
  • extensions - Расширения для подключения при добавлении маршрутов.
  • namePrefix - Префикс, добавляемый к именам всех маршрутов.

Параметры

Cake\Routing\RouteCollection $collection
Коллекция маршрутов, в которую следует добавлять маршруты.
string $path
Префикс пути области.
array $params optional []
Параметры маршрутизации области.
array $options optional []
Список опций.

_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
когда создаваемый маршрут конфликтует с текущей областью

addExtensions()source public

addExtensions( string|array $extensions )

Добавить дополнительные расширения к уже имеющимся в текущей области

Параметры

string|array $extensions
Одно или несколько расширений для добавления

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.

  • pass используется для определения, какие из параметров маршрута должны быть перенесены в массив переданных параметров. Добавление параметра в переданные параметры удалит его из обычного массива параметров маршрута. Пример: 'pass' => ['slug'].
  • routeClass используется для расширения и изменения того, как отдельные маршруты анализируют запросы и обрабатывают обратный маршрут, с помощью настраиваемого класса маршрутизации. Пример: 'routeClass' => 'SlugRoute'
  • persist используется для определения, какие параметры маршрута должны автоматически включаться при генерации новых URL. Вы можете переопределить постоянные параметры, переопределяя их в URL, или удалить их, установив параметр в false. Пример: 'persist' => ['lang']
  • multibytePattern Устанавливается в true для включения поддержки многобайтовых шаблонов в шаблонах параметров маршрута.
  • _name используется для определения конкретного имени маршрутов. Это может использоваться для оптимизации обратного поиска по маршрутам. Если не определено, для каждого подключенного маршрута будет сгенерировано имя.
  • _ext — массив расширений файлов, которые будут извлечены из URL, если они присутствуют. См. ScopedRouteCollection::extensions().
  • _method Сопоставлять запросы только с определёнными HTTP-методами.

Пример использования условия _method:

$routes->connect('/tasks', ['controller' => 'Tasks', 'action' => 'index', '_method' => 'GET']);

Вышеуказанный маршрут будет сопоставляться только для запросов GET. Запросы POST не будут соответствовать этому маршруту.

Параметры

string $route
Строка, описывающая шаблон маршрута
array $defaults optional []

Массив, описывающий параметры маршрута по умолчанию. Эти параметры используются по умолчанию и могут предоставлять параметры маршрутизации, которые не являются динамическими. См. выше.

array $options optional []

Массив, соответствующий именованным элементам в маршруте регулярным выражениям, которым должен соответствовать этот элемент. Также содержит дополнительные параметры, такие как перенос параметров маршрута в переданные аргументы, предоставление шаблонов для параметров маршрута и предоставление имени настраиваемого класса маршрутизации.

Исключения

InvalidArgumentException
BadMethodCallException
END_OF_DOCUMENT_MARKER

extensions()source public

extensions( null|string|array $extensions null )

Получение или установка расширений в области действия этого билдера маршрутов.

Будущие маршруты, подключенные через этот билдер, получат применённые расширения. Однако, установка расширений не изменяет существующие маршруты.

Параметры

null|string|array $extensions необязательно null
Расширения для использования или null.

Возвращаемые значения

array|null

fallbacks()source public

fallbacks( string|null $routeClass null )

Подключение маршрутов по умолчанию (fallback) для /:controller и /:controller/:action/*.

Это метод-короткая запись для подключения маршрутов по умолчанию в заданном объеме.

Параметры

string|null $routeClass необязательно null

Класс маршрута для использования. Если не указано, используется по умолчанию routeClass.

nameExists()source public

nameExists( string $name )

Проверка наличия маршрута с заданным именем.

Параметры

string $name
Имя.

Возвращаемые значения

boolean

namePrefix()source public

namePrefix( string|null $value null )

Получение/установка префикса имени для этого объема.

Изменение префикса имени повлияет только на префикс, используемый для маршрутов, подключенных после изменения префикса.

Параметры

string|null $value необязательно null
Значение для установки или null.

Возвращаемые значения

string

params()source public

params( )

Получение параметров для этого объема.

Возвращаемые значения

string

path()source public

path( )

Получение пути для этого объема.

Возвращаемые значения

string

plugin()source public

plugin( string $name , array|callable $options [] , callable|null $callback null )

Добавление маршрутов плагина.

Этот метод создаёт новую область маршрутов, включающую информацию о плагинах.

Имя плагина будет преобразованно в нижний регистр и с дефисами, чтобы создать путь маршрута. Если вам нужен пользовательский путь, используйте опцию path.

Маршруты, подключенные в области, будут иметь правильный префикс пути и соответствующий ключ маршрута плагина.

Параметры

string $name
Название плагина, для которого создавать маршруты
array|callable $options необязательно []
Опции для использования или обратный вызов.
callable|null $callback необязательно null

Обратный вызов, который строит маршруты плагина. Требуется только когда $options определены.

prefix()source public

prefix( string $name , callable $callback )

Добавление маршрутов с префиксом.

Этот метод создаёт область маршрутов, которая включает релевантную информацию о префиксе.

Параметр пути используется для генерации имени параметра маршрута. Например, путь admin приведет к применению 'prefix' => 'admin' ко всем подключенным маршрутам.

Вы можете повторно открыть префикс столько раз, сколько нужно, а также вложенные префиксы. Вложенные префиксы приведут к значениям префиксов, таким как admin/api, что переводится в пространство имён Controller\Admin\Api\.

Параметры

string $name
Имя префикса для использования.
callable $callback
Обратный вызов, который строит маршруты с префиксом.

redirect()source public

redirect( string $route , array $url , array $options [] )

Подключает новый маршрут перенаправления в маршрутизатор.

Маршруты перенаправления отличаются от обычных маршрутов тем, что они выполняют фактическое перенаправление заголовка, если найдено совпадение. Перенаправление может происходить внутри приложения или перенаправляться на внешний сайт.

Примеры:

$routes->redirect('/home/*', ['controller' => 'posts', 'action' => 'view']);

Перенаправляет /home/* на /posts/view и передаёт параметры в /posts/view. Использование массива в качестве пункта назначения перенаправления позволяет использовать другие маршруты для определения, куда должна быть перенаправлена строка URL.

$routes->redirect('/posts/*', 'http://google.com', ['status' => 302]);

Перенаправляет /posts/* на http://google.com со статусом HTTP 302

Опции:

  • status Устанавливает код HTTP-статуса (по умолчанию 301)
  • persist Передаёт параметры перенаправленному маршруту, если это возможно. Это полезно для жадных маршрутов, маршруты, заканчивающиеся на *, являются жадными. Вы можете переназначить URL и не потерять переданные аргументы.

Параметры

string $route
Строка, описывающая шаблон маршрута
array $url
URL для перенаправления. Может быть строкой или URL на основе массива Cake.
array $options необязательно []

Массив, соответствующий именованным элементам в маршруте, регулярным выражениям, которым должен соответствовать этот элемент. Также содержит дополнительные параметры, такие как маршрутизированные параметры, которые должны быть перемещены в переданные аргументы. А также предоставление шаблонов для маршрутизированных параметров.

resources()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' – настраиваемые опции для подключения маршрутов.

Параметры

string $name
Имя контроллера для подключения маршрутов ресурсов.
array|callable $options необязательно []
Опции для использования при генерации маршрутов REST-ресурсов или обратный вызов.
callable|null $callback необязательно null

Необязательный обратный вызов, который будет выполнен во вложенной области действия. Вложенные области действия наследуют существующий путь и параметр 'id'.

routeClass()source public

routeClass( string|null $routeClass null )

Получение или установка класса маршрута по умолчанию.

Параметры

string|null $routeClass необязательно null
Имя класса.

Возвращаемые значения

string|null
END_OF_DOCUMENT_MARKER

scope()source public

scope( string $path , array|callable $params , callable|null $callback null )

Создать новый область маршрутизации.

Области, созданные с помощью этого метода, будут унаследовать свойства области, к которой они добавлены. Это означает, что и текущий путь, и параметры будут добавлены к предоставленным параметрам.

Параметры

строка $path
Путь для создания области.
массив|вызываемый $params
Либо параметры для добавления к маршрутам, либо обратный вызов.
вызываемый|null $callback необязательно null

Обратный вызов для вызова, который строит маршруты плагина. Требуется только при наличии параметра $params.

Исключения

InvalidArgumentException
если параметр не является обратным вызовом.

Подробное описание свойств

$_collectionsource

protected Cake\Routing\RouteCollection

Коллекция маршрутов, к которой должны быть добавлены маршруты.

$_extensionssource

protected массив

Расширения, которые должны быть установлены в подключенные маршруты.

[]

$_namePrefixsource

protected строка

Префикс имени для подключенных маршрутов.

''

$_paramssource

protected массив

Параметры области, если они есть.

$_pathsource

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'

© 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.3/class-Cake.Routing.RouteBuilder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API