Класс Route
Один маршрут, используемый маршрутизатором для сопоставления запросов со словарями параметров.
Обычно не создается автономно. Используйте Router::connect() для создания маршрутов для вашего приложения.
Константы
-
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Массив дополнительных параметров для маршрута.
- $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
Проверка соответствия массива URL этому экземпляру маршрута.
-
normalizeAndValidateMethods() protected
Нормализация имён методов до верхнего регистра и проверка на соответствие допустимым HTTP-методам.
-
parse() public
Проверка возможности разбора данного URL данным маршрутом.
-
parseRequest() public
Проверка возможности разбора данного URL данным маршрутом.
-
setExtensions() public
Установка поддерживаемых расширений для этого маршрута.
-
setHost() public
Установка требования к хосту
-
setMethods() public
Установка допустимых HTTP-методов для данного маршрута.
-
setMiddleware() public
Установка имён middleware, которые должны быть применены к этому маршруту.
-
setPass() public
Установка имён параметров, которые будут преобразованы в передаваемые параметры
-
setPatterns() public
Установка регулярных выражений для параметров маршрутизации
-
setPersist() public
Установка имён параметров, которые будут автоматически сохранены
-
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 необязательно Значения по умолчанию для маршрута.
-
array<string, mixed>$options необязательно Массив дополнительных параметров для маршрута
Исключения
InvalidArgumentExceptionПри отсутствии `$options['_method']` в списке `VALID_METHODS`.
__set_state() public static
__set_state(array<string, mixed> $fields): static
Магический метод для установки состояния, поддерживающий var_export
Этот метод полезен для приложений, желающих реализовать кэширование маршрутизатора.
Параметры
-
array<string, mixed>$fields Ключ/Значение атрибутов объекта
Возвращает
static_matchMethod() защищённый
_matchMethod(array $url): bool
Проверяет, соответствует ли HTTP-метод URL.
Параметры
-
array$url Массив для генерируемого URL.
Возвращает
bool_parseArgs() защищённый
_parseArgs(string $args, array $context): array<string>
Разбирает переданные параметры в список переданных аргументов.
Возвращает true, если заданное имя $param и $val соответствуют заданному $rule в зависимости от $context. В настоящее время реализованы типы правил: controller, action и match, которые могут быть объединены друг с другом.
Параметры
-
string$args Строка с переданными параметрами. Пример: /1/foo
-
array$context Текущий контекст маршрута, который должен содержать ключи controller/action.
Возвращает
array<string>_parseExtension() защищённый
_parseExtension(string $url): array
Удаляет расширение из $url, если оно содержит зарегистрированное расширение. Если зарегистрированное расширение не найдено, расширение не возвращается, и URL возвращается без изменений.
Параметры
-
string$url URL для анализа.
Возвращает
array_persistParams() защищённый
_persistParams(array $url, array $params): array
Применяет постоянные параметры к массиву URL. Постоянные параметры — это специальный ключ, используемый при создании маршрута для принудительного сохранения параметров маршрута при их отсутствии в массиве URL.
Параметры
-
array$url Массив, к которому применяются постоянные параметры.
-
array$params Массив постоянных значений для замены постоянных.
Возвращает
array_writeRoute() защищённый
_writeRoute(): void
Создаёт регулярное выражение маршрута.
Использует свойства template, defaults и options для компиляции регулярного выражения, которое можно использовать для анализа строк запроса.
Возвращает
void_writeUrl() защищённый
_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
Получить стандартизированное имя плагина.контроллер:действие для маршрута.
Возвращает
stringhostMatches() public
hostMatches(string $host): bool
Проверить, соответствует ли хост требованиям маршрута.
Параметры
-
string$host Имя хоста запроса
Возвращает
boolmatch() public
match(array $url, array $context = []): string|null
Проверить, соответствует ли массив URL этому экземпляру маршрута.
Если URL соответствует параметрам и настройкам маршрута, возвращается сгенерированная строка URL. Если URL не соответствует параметрам маршрута, возвращается false. Этот метод обрабатывает обратный маршрут или преобразование массивов URL в строки URL.
Параметры
-
array$url Массив параметров для проверки соответствия.
-
array$context необязательно Массив текущего контекста запроса. Содержит информацию, такую как текущий хост, схема, порт, базовый каталог и другие параметры URL.
Возвращает
string|nullnormalizeAndValidateMethods() защищённый
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 быть обработан данным маршрутом.
Если маршрут может быть обработан, возвращается массив параметров; в противном случае возвращается null. Строки URL анализируются, если они соответствуют регулярному выражению маршрута.
Параметры
-
string$url URL для попытки анализа.
-
string$method HTTP-метод обрабатываемого запроса.
Возвращает
array|nullИсключения
InvalidArgumentExceptionПри отсутствии метода или при методе, не являющимся пустой строкой или методом из списка `VALID_METHODS`.
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
Установить имена middleware, которые должны быть применены к этому маршруту.
Параметры
-
array$middleware Список имён middleware, которые следует применить к этому маршруту. Имена 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 Имена параметров, которые следует передать.
Возвращает
$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
Список middleware, которые должны быть применены.
Тип
array$options 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.Route.html