Spec-Zone.ru › CakePHP 3.1

Класс RouteBuilder

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

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

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

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

__constructsource 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 []
Список параметров.

_makeRoutesource 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
\Cake\Routing\Route\Route

Выбрасывает

InvalidArgumentException
при некорректном классе или объекте маршрута.
BadMethodCallException
при конфликте создаваемого маршрута с текущей областью

addExtensionssource public

addExtensions( string|array $extensions )

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

Параметры

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

connectsource 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. Добавление параметра для передачи удалит его из обычного массива маршрутов. Пример: 'pass' => ['slug'].
  • routeClass используется для расширения и изменения того, как отдельные маршруты анализируют запросы и обрабатывают обратную маршрутизацию с помощью пользовательского класса маршрутизации. Пример: 'routeClass' => 'SlugRoute'
  • persist используется для определения, какие параметры маршрута должны быть автоматически включены при генерации новых URL-адресов. Можно переопределить постоянные параметры, повторно определив их в URL-адресе, или удалить их, установив параметр в false. Пример: 'persist' => ['lang']
  • _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
\InvalidArgumentException
BadMethodCallException
\BadMethodCallException

extensionssource public

extensions( null|string|array $extensions null )

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

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

Параметры

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

Возвращает

array|null
array|null

fallbackssource public

fallbacks( string|null $routeClass null )

Подключает маршруты по умолчанию /:controller и /:controller/:action/*.

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

Параметры

string|null $routeClass optional null
класс маршрута для использования, если не указан, используется класс маршрута по умолчанию

namePrefixsource public

namePrefix( string|null $value null )

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

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

Параметры

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

Возвращает

string
string

paramssource public

params( )

Получить имена/значения параметров для этой области.

Возвращает

string
string

pathsource public

path( )

Получить путь для этой области.

Возвращает

string
string

pluginsource public

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

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

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

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

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

Параметры

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

prefixsource public

prefix( string $name , callable $callback )

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

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

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

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

Параметры

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

redirectsource 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-адреса и не потерять переданные аргументы.

Параметры

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

resourcessource 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' в определении ресурса для настройки имени пути.

Параметры:

  • 'id' - Фрагмент регулярного выражения для использования при сопоставлении идентификаторов. По умолчанию соответствует целым числам и UUID.
  • 'inflect' - Выберите метод склонения, используемый для имени ресурса. По умолчанию 'underscore'.
  • 'only' - Подключить только указанный список действий.
  • 'actions' - Переопределить имена методов, используемых для подключения действий.
  • 'map' - Дополнительные маршруты ресурсов, которые следует подключить. Если вы определены 'only' и 'map', убедитесь, что ваши сопоставленные методы также находятся в списке 'only'.

Параметры

строка $name
Имя контроллера для подключения маршрутов ресурсов.
массив|обратный вызов $options необязательно []
Параметры для использования при генерации маршрутов REST или обратный вызов.
обратный вызов|null $callback необязательно null
Необязательный обратный вызов, который будет выполнен во вложенном контексте. Вложенные контексты наследуют существующий путь и параметр 'id'.

routeClasssource public

routeClass( string|null $routeClass null )

Получить или установить стандартный класс маршрута.

Параметры

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

Возвращает

string|null
строка|null

scopesource public

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

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

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

Параметры

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

Исключения

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

Сводка констант

string ID

Регулярное выражение для идентификаторов с автоматической привязкой

'[0-9]+'
string UUID

Регулярное выражение для 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}'

Сводка свойств

$_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–2016 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.
http://api.cakephp.org/3.1/class-Cake.Routing.RouteBuilder.html

Spec-Zone.ru

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