Класс RedirectRoute
Маршрут перенаправления выполнит немедленное перенаправление. Маршруты перенаправления полезны, когда вам нужно, чтобы в вашем приложении происходило перенаправление уровня маршрутизации, когда URL-адреса перемещаются.
Перенаправление сигнализируется исключением, которое останавливает сопоставление маршрутов и определяет URL-адрес перенаправления и код состояния.
Константы
-
stringPLACEHOLDER_REGEX'#\\{([a-z][a-z0-9-_]*)\\}#i'Регулярное выражение для сопоставления заменённых значений в шаблоне маршрута.
-
array<string>VALID_METHODS['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']
Допустимые HTTP-методы.
Краткое описание свойств
- $_compiledRoute protected
string|nullКомпилированное регулярное выражение маршрута
- $_extensions protected
array<string>Список подключенных расширений для этого маршрута.
- $_greedy protected
boolЯвляется ли этот маршрут жадным? Жадные маршруты имеют
/*в своём шаблоне. - $_name protected
string|nullИмя маршрута. Получить с помощью Route::getName();
- $braceKeys protected
boolОтслеживать, были ли использованы скобочные ключи
{var}. - $defaults public
arrayПараметры по умолчанию для маршрута.
- $keys public
arrayМассив именованных сегментов в маршруте.
/{controller}/{action}/{id}имеет 3 ключевых элемента. - $middleware protected
arrayСписок middleware, которые должны быть применены.
- $options public
arrayМассив дополнительных параметров для маршрута.
- $redirect public
arrayМесто назначения перенаправления.
- $template public
stringСтрока шаблона маршрута.
Краткое описание методов
-
__construct() public
Конструктор
-
__set_state() public static
Магический метод установки состояния для поддержки var_export
-
_matchMethod() protected
Проверка соответствия HTTP-метода URL-адреса.
-
_parseArgs() protected
Разбор переданных параметров в список переданных аргументов.
-
_parseExtension() protected
Удаляет расширение из $url, если оно содержит зарегистрированное расширение. Если зарегистрированное расширение не найдено, расширение не возвращается, а URL возвращается без изменений.
-
_persistParams() protected
Применение постоянных параметров к массиву URL. Постоянные параметры — это специальный ключ, используемый при создании маршрутов, чтобы принудительно сохранить параметры маршрутов при их отсутствии в массиве URL.
-
_writeRoute() protected
Строит регулярное выражение маршрута.
-
_writeUrl() protected
Преобразование массива сопоставленного маршрута в строку URL.
-
compile() public
Компилирует регулярное выражение маршрута.
-
compiled() public
Проверка, был ли маршрут скомпилирован в регулярное выражение.
-
getExtensions() public
Получение поддерживаемых расширений для этого маршрута.
-
getMiddleware() public
Получение имён middleware, которые должны быть применены к этому маршруту.
-
getName() public
Получение стандартизированного имени плагина.контроллер:действие для маршрута.
-
hostMatches() public
Проверка соответствия хоста требованиям маршрута.
-
match() public
Нет обратной маршрутизации перенаправляющих маршрутов.
-
normalizeAndValidateMethods() protected
Нормализация имён методов до верхнего регистра и проверка того, что они являются допустимыми HTTP-методами.
-
parse() public
Разбор строкового URL в массив. Разбор URL-адресов приведёт к автоматическому перенаправлению.
-
parseRequest() public
Проверка возможности разбора данного URL-адреса этим маршрутом.
-
setExtensions() public
Установить поддерживаемые расширения для этого маршрута.
-
setHost() public
Установить требование к хосту.
-
setMethods() public
Установить допустимые HTTP-методы для этого маршрута.
-
setMiddleware() public
Установить имена middleware, которые должны быть применены к этому маршруту.
-
setPass() public
Установить имена параметров, которые будут преобразованы в переданные параметры.
-
setPatterns() public
Установить регулярные выражения для параметров маршрутизации.
-
setPersist() public
Установить имена параметров, которые будут автоматически сохранены.
-
setStatus() public
Устанавливает HTTP-код состояния.
-
staticPath() public
Получить статическую часть пути для этого маршрута.
Подробное описание методов
__construct() public
__construct(string $template, array $defaults = [], array<string, mixed> $options = [])
Конструктор
Параметры
-
_ext- Определяет расширения, используемые для этого маршрута. -
_middleware- Определяет имена middleware для этого маршрута. -
pass- Копирует перечисленные параметры в params['pass']. -
_method- Определяет HTTP-метод(ы), к которому относится маршрут. Может быть строкой или массивом допустимых имён HTTP-методов. -
_host- Определяет шаблон имени хоста, если этот маршрут должен соответствовать только определённым именам хостов. Можно использовать.*и для создания поддоменов/хостов с подстановкой. Например,*.example.comсоответствует всем поддоменам наexample.com. - '_port` - Определяет порт, если этот маршрут должен соответствовать только определённому номеру порта.
- '_urldecode' - Установите значение
falseдля отключения декодирования URL перед обработкой маршрута.
Параметры
-
string$template Шаблонная строка с параметрами-заполнителями
-
array$defaults необязательно Значения по умолчанию для маршрута. Массив вида redirect=>value или CakePHP массив URL.
-
array<string, mixed>$options необязательно Массив дополнительных параметров для маршрута
__set_state() public static
__set_state(array<string, mixed> $fields): static
Магический метод для установки состояния, поддерживающий var_export
Этот метод полезен для приложений, которые хотят реализовать кэширование маршрутизатора.
Параметры
-
array<string, mixed>$fields Ключи/значения атрибутов объекта
Возвращает
static_matchMethod() protected
_matchMethod(array $url): bool
Проверка соответствия HTTP-метода URL.
Параметры
-
array$url Массив для генерируемого URL.
Возвращает
bool_parseArgs() protected
_parseArgs(string $args, array $context): array<string>
Разбор переданных параметров в список переданных аргументов.
Возвращает true, если заданное имя $param и значение $val соответствуют заданному правилу $rule в зависимости от $context. В настоящее время реализованы типы правил контроллер, действие и совпадение, которые могут комбинироваться друг с другом.
Параметры
-
string$args Строка с переданными параметрами, например /1/foo
-
array$context Текущий контекст маршрута, который должен содержать ключи контроллер/действие.
Возвращает
array<string>_parseExtension() protected
_parseExtension(string $url): array
Удаляет расширение из $url, если он содержит зарегистрированное расширение. Если зарегистрированное расширение не найдено, расширение не возвращается, и URL возвращается без изменений.
Параметры
-
string$url URL для разбора.
Возвращает
array_persistParams() protected
_persistParams(array $url, array $params): array
Применение постоянных параметров к массиву URL. Постоянные параметры — это специальный ключ, используемый при создании маршрута, для принудительного сохранения параметров маршрута при их отсутствии в массиве URL.
Параметры
-
array$url Массив, к которому нужно применить постоянные параметры.
-
array$params Массив постоянных значений для замены постоянных.
Возвращает
array_writeRoute() protected
_writeRoute(): void
Создаёт регулярное выражение для маршрута.
Использует свойства template, defaults и options для компиляции регулярного выражения, которое можно использовать для разбора строк запроса.
Возвращает
void_writeUrl() protected
_writeUrl(array $params, array $pass = [], array $query = []): string
Преобразование совпадающего массива маршрута в строку URL.
Собирает строку URL с использованием шаблона, используемого для создания маршрута.
Параметры
-
array$params Параметры, которые необходимо преобразовать в строковый URL
-
array$pass необязательно Дополнительные переданные аргументы
-
array$query необязательно Массив параметров
Возвращает
stringcompile() public
compile(): string
Компилирует регулярное выражение маршрута.
Изменяет свойство defaults, чтобы все необходимые ключи были заданы, и заполняет $this->names именованными элементами маршрутизации.
Возвращает
stringcompiled() public
compiled(): bool
Проверка, был ли маршрут скомпилирован в регулярное выражение.
Возвращает
boolgetExtensions() public
getExtensions(): array<string>
Получение поддерживаемых расширений для этого маршрута.
Возвращает
array<string>getMiddleware() public
getMiddleware(): array
Получение имён middleware, которые должны быть применены к этому маршруту.
Возвращает
arraygetName() public
getName(): string
Получение стандартизованного имени plugin.controller:action для маршрута.
Возвращает
stringhostMatches() public
hostMatches(string $host): bool
Проверка соответствия имени хоста требованиям маршрута.
Параметры
-
string$host Имя хоста запроса
Возвращает
boolmatch() public
match(array $url, array $context = []): string|null
Обратного маршрутизирования перенаправлений маршрутов нет.
Если URL соответствует параметрам и настройкам маршрута, возвращается сгенерированный строковый URL. Если URL не соответствует параметрам маршрута, возвращается false. Этот метод обрабатывает обратное маршрутизирование или преобразование массивов URL в строковые URL.
Параметры
-
array$url Массив параметров для преобразования в строку.
-
array$context необязательно Массив параметров контекста запроса.
Возвращает
string|nullnormalizeAndValidateMethods() protected
normalizeAndValidateMethods(array<string>|string $methods): array<string>|string
Нормализует имена методов до верхнего регистра и проверяет, что они являются допустимыми HTTP-методами.
Параметры
-
array<string>|string$methods Методы.
Возвращает
array<string>|stringВызывает исключение
InvalidArgumentExceptionПри методах, отсутствующих в списке `VALID_METHODS`.
parse() public
parse(string $url, string $method = ''): array|null
Разбирает строковый URL в массив. Разбор URL приведет к автоматическому перенаправлению.
Если маршрут может быть разобран, возвращается массив параметров; если нет, возвращается null. Строковые URL разбираются, если они соответствуют регулярному выражению маршрута.
Параметры
-
string$url URL для разбора.
-
string$method необязательно Используемый HTTP-метод.
Возвращает
array|nullВызывает исключение
Cake\Http\Exception\RedirectExceptionИсключение возникает при успешном совпадении. Используется для остановки сопоставления маршрутов и сигнализации middleware о необходимости перенаправления.
parseRequest() public
parseRequest(Psr\Http\Message\ServerRequestInterface $request): array|null
Проверяет, может ли данный URL быть обработан этим маршрутом.
Если маршрут может быть обработан, будет возвращён массив параметров; в противном случае будет возвращено null.
Параметры
-
Psr\Http\Message\ServerRequestInterface$request URL для попытки разбора.
Возвращает
array|nullsetExtensions() public
setExtensions(array<string> $extensions): $this
Устанавливает поддерживаемые расширения для данного маршрута.
Параметры
-
array<string>$extensions Расширения для установки.
Возвращает
$thissetHost() public
setHost(string $host): $this
Устанавливает требование к хосту.
Параметры
-
string$host Имя хоста, к которому привязан этот маршрут.
Возвращает
$thissetMethods() public
setMethods(array<string> $methods): $this
Устанавливает принимаемые HTTP-методы для этого маршрута.
Параметры
-
array<string>$methods Принимаемые HTTP-методы.
Возвращает
$thisИсключения
InvalidArgumentExceptionВ случае, когда методы отсутствуют в списке `VALID_METHODS`.
setMiddleware() public
setMiddleware(array $middleware): $this
Устанавливает имена промежуточного ПО, которое должно быть применено к этому маршруту.
Параметры
-
array$middleware Список имён промежуточного ПО, которые нужно применить к этому маршруту. Имена промежуточного ПО будут проверены только при совпадении с маршрутом.
Возвращает
$thissetPass() public
setPass(array<string> $names): $this
Устанавливает имена параметров, которые будут преобразованы в переданные параметры.
Параметры
-
array<string>$names Имена параметров, которые должны быть переданы.
Возвращает
$thissetPatterns() public
setPatterns(array<string> $patterns): $this
Устанавливает регулярные выражения для параметров маршрутизации.
Если какие-либо ваши шаблоны содержат многобайтовые значения, режим multibytePattern будет включён.
Параметры
-
array<string>$patterns Шаблоны для применения к элементам маршрутизации.
Возвращает
$thissetPersist() public
setPersist(array $names): $this
Устанавливает имена параметров, которые будут автоматически сохранены.
Сохраняемые параметры позволяют определить, какие параметры маршрута должны быть автоматически включены при генерации новых URL. Вы можете переопределить сохраняемые параметры, повторно определив их в URL или удалить их, установив сохраняемый параметр в false.
// remove a persistent 'date' parameter Router::url(['date' => false', ...]);
Параметры
-
array$names Имена параметров, которые должны быть переданы.
Возвращает
$thissetStatus() public
setStatus(int $status): $this
Устанавливает HTTP-статус.
Параметры
-
int$status Код состояния для этого маршрута.
Возвращает
$thisstaticPath() public
staticPath(): string
Получает статическую часть пути для этого маршрута.
Возвращает
stringПодробное описание свойств
$_compiledRoute protected
Скомпилированное регулярное выражение маршрута.
Тип
string|null$_extensions protected
Список подключённых расширений для этого маршрута.
Тип
array<string>$_greedy protected
Является ли этот маршрут жадным? Жадные маршруты имеют /* в своём шаблоне.
Тип
bool$_name protected
Имя маршрута. Получить с помощью Route::getName();
Тип
string|null$braceKeys protected
Отслеживать, использовались ли фигурные скобки {var}.
Тип
bool$defaults public
Параметры по умолчанию для маршрута.
Тип
array$keys public
Массив именованных сегментов в маршруте. /{controller}/{action}/{id} имеет 3 ключевых элемента.
Тип
array$middleware protected
Список промежуточного ПО, которое должно быть применено.
Тип
array$options public
Массив дополнительных параметров для маршрута.
Тип
array$redirect public
Расположение для перенаправления.
Тип
array$template public
Шаблон маршрута.
Тип
string
© 2005–present 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/4.3/class-Cake.Routing.Route.RedirectRoute.html