Spec-Zone.ru › CakePHP 2.10

Класс Router

Парсит URL запроса в контроллер, действие и параметры. Использует подключенные маршруты для сопоставления входящей строки URL с параметрами, которые позволят обработать запрос. Также обрабатывает преобразование списков параметров в строки URL, используя подключенные маршруты. Маршрутизация позволяет отделить способ взаимодействия мира с вашим приложением (URL) от реализации (контроллеры и действия).

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

Подключение маршрутов выполняется с помощью Router::connect(). При парсинге входящих запросов или обратном сопоставлении параметров маршруты перечисляются в порядке их подключения. Вы можете изменить порядок подключенных маршрутов, используя Router::promote(). Более подробную информацию о маршрутах и способах их подключения см. в Router::connect().

Именованные параметры

Именованные параметры позволяют встраивать пары ключ:значение в сегменты пути. Это позволяет создавать структуры хешей, используя URL. Вы можете определить, как работают именованные параметры в вашем приложении, используя Router::connectNamed()

Пакет: Cake\Маршрутизация
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/Routing/Router.php

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

  • string

    ACTION
    'index|show|add|create|edit|update|remove|del|delete|view|item'
  • string

    DAY
    '0[1-9]|[12][0-9]|3[01]'
  • string

    ID
    '[0-9]+'
  • string

    MONTH
    '0[1-9]|1[012]'
  • 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}'
  • string

    YEAR
    '[12][0-9]{3}'

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

  • $_currentRoute protected static
    array
    Сопоставленный маршрут с URL текущего запроса
  • $_fullBaseUrl protected static
    string

    Содержит базовую строку, которая будет применена ко всем сгенерированным URL. Например, https://example.com

  • $_initialState protected static
    array

    Изначальное состояние заполняется при первом вызове reload(), что находится внизу этого файла. Это уловка, так как get_class_vars() возвращает значение статических переменных, даже если они изменились.

  • $_namedConfig protected static
    string
    Хранит всю необходимую информацию для определения, какие именованные аргументы анализируются при каких условиях.
  • $_namedExpressions protected static
    array
    Именованные выражения
  • $_parseExtensions protected static
    boolean
    Директива для Router для анализа расширений файлов для сопоставления с типами содержимого.
  • $_prefixes protected static
    array

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

  • $_requests protected static
    array

    Сохраняет стек объектов запроса для текущего запроса. Он будет содержать более одного объекта запроса при использовании requestAction.

  • $_resourceMap protected static
    array
    Карта по умолчанию для метода HTTP => действие контроллера.
  • $_resourceMapped protected static
    array
    Список контроллеров, сопоставленных с ресурсами
  • $_routeClass protected static
    string
    Класс маршрута по умолчанию для использования
  • $_validExtensions protected static
    array
    Список допустимых расширений для анализа из URL. Если null, разрешено любое расширение.
  • $initialized public static
    boolean
    Были загружены маршруты
  • $routes public static
    array
    Массив маршрутов, подключенных с помощью Router::connect()

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

  • _handleNoRoute() protected static

    Специальный метод обратной связи, который обрабатывает массивы URL, которые не могут соответствовать каким-либо определённым маршрутам.

  • _loadRoutes() protected static
    Загружает конфигурацию маршрутов
  • _parseExtension() protected static
    Извлекает расширение файла из URL, если Router::parseExtensions() включено.
  • _setPrefixes() protected static
    Устанавливает префиксы маршрутизации.
  • _validateRouteClass() protected static
    Проверяет, существует ли переданный класс маршрута и является ли он подклассом CakeRoute
  • connect() public static
    Подключает новый маршрут в маршрутизатор.
  • connectNamed() public static

    Указывает, какие именованные параметры CakePHP должен анализировать из входящих URL. По умолчанию CakePHP будет анализировать все именованные параметры из входящих URL. Однако, если вы хотите получить больший контроль над тем, как анализируются именованные параметры, вы можете использовать одну из следующих установок:

  • currentRoute() public static
    Возвращает маршрут, соответствующий текущему запросу (полезно для отслеживания requestAction).
  • defaultRouteClass() public static
    Устанавливает или возвращает текущий используемый класс маршрута по умолчанию.
  • extensions() public static
    Получает список расширений, которые могут быть обработаны Router.
  • fullBaseUrl() public static

    Устанавливает полный базовый URL, который будет использоваться в качестве префикса для генерации полных URL для этого приложения. Если параметры не переданы, возвращается текущее конфигурированное значение.

  • getNamedExpressions() public static
    Получает элементы именованных маршрутов для использования в app/Config/routes.php
  • getParam() public static
    Получает параметр URL по имени
  • getParams() public static
    Получает информацию о параметрах
  • getPaths() public static
    Получает информацию о путях
  • getRequest() public static
    Получает текущий объект запроса или первый из них.
  • mapResources() public static

    Создаёт маршруты REST-ресурсов для заданного(ых) контроллера(ов). При создании маршрутов ресурсов для плагина, по умолчанию префикс будет изменён на нижнее подчеркивание названия плагина. Указав префикс, вы можете переопределить это поведение.

  • namedConfig() public static
    Получает текущие значения конфигурации именованных параметров.
  • normalize() public static
    Нормализует URL для сравнения.
  • parse() public static
    Анализирует заданную строку URL. Возвращает параметры 'routing' для этого URL.
  • parseExtensions() public static
    Указывает маршрутизатору извлекать расширения файлов из URL.
  • popRequest() public static
    Удаляет запрос из стека запросов. Используется при выполнении requestAction.
  • prefixes() public static
    Возвращает список префиксов, используемых в подключенных маршрутах.
  • promote() public static
    Перемещает маршрут (по умолчанию, последний добавленный) в начало списка.
  • queryString() public static
    Генерирует правильно сформированную строку запроса из $q.
  • redirect() public static
    Подключает новый маршрут перенаправления в маршрутизатор.
  • reload() public static

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

  • requestRoute() public static
    Возвращает маршрут, соответствующий текущему URL запроса.
  • resourceMap() public static
    Получение/установка карты ресурсов.
  • reverse() public static
    Обращает массив обработанных параметров в строку.
  • reverseToArray() public static
    Обращает массив обработанных параметров в массив.
  • setExtensions() public static
    Устанавливает/добавляет допустимые расширения.
  • setRequestInfo() public static

    Принимает информацию о параметрах и путях от диспетчера, устанавливает эти параметры как текущие параметры запроса, которые объединяются с массивами URL, созданными позже в запросе.

  • stripPlugin() public static
    Удаляет имя плагина из базового URL.
  • url() public static
    Находит URL для указанного действия.

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

_handleNoRoute()source protected static

_handleNoRoute( array $url )

Специальный метод обратной связи, который обрабатывает массивы URL, которые не могут соответствовать каким-либо определённым маршрутам.

Параметры

массив $url
URL, который не соответствовал ни одному маршруту

Возвращает

строка
Сгенерированный URL для массива

См. также

Router::url()

_loadRoutes()source protected static

_loadRoutes( )

Загружает конфигурацию маршрутов

_parseExtension()source protected static

_parseExtension( string $url )

Извлекает расширение файла из URL, если Router::parseExtensions() включено.

Параметры

строка $url
URL.

Возвращает

массив
Возвращает массив, содержащий изменённый URL и извлечённое расширение.

_setPrefixes()source protected static

_setPrefixes( )

Устанавливает префиксы маршрутизации.

_validateRouteClass()source protected static

_validateRouteClass( string $routeClass )

Проверяет, существует ли переданный класс маршрута и является ли он подклассом CakeRoute

Параметры

строка $routeClass
Имя класса маршрута

Возвращает

строка

Исключения

RouterException

connect()source public static

connect( string $route , array $defaults array() , array $options array() )

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

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

Примеры:

Router::connect('/:controller/:action/*');

Первый токен ':controller' будет использоваться как имя контроллера, а второй — как имя действия. Синтаксис '/*' делает этот маршрут жадным, то есть он будет сопоставлять запросы, такие как /posts/index , а также запросы, такие как /posts/edit/1/foo/bar.

Router::connect('/home-page', array('controller' => 'pages', 'action' => 'display', 'home'));

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

Router::connect(
  '/:lang/:controller/:action/:id',
  array(),
  array('id' => '[0-9]+', 'lang' => '[a-z]{3}')
);

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

$defaults объединяется с результатами анализа URL-запроса, чтобы сформировать конечный пункт назначения маршрутизации и его параметры. Этот пункт назначения выражается в виде ассоциативного массива классом Router. См. вывод Router::parse().

$options предлагает четыре «специальных» ключа. pass, named, persist и routeClass имеют специальное значение в массиве $options.

  • pass используется для определения, какие из параметров маршрутизации следует перенести в массив pass. Добавление параметра в pass удалит его из обычного массива маршрута. Пример: 'pass' => array('slug')
  • persist используется для определения, какие параметры маршрута должны быть автоматически включены при генерации новых URL-адресов. Вы можете переопределить постоянные параметры, повторно определив их в URL-адресе, или удалить их, установив параметр в false. Пример: 'persist' => array('lang')
  • routeClass используется для расширения и изменения способа, которым отдельные маршруты анализируют запросы и обрабатывают обратную маршрутизацию, через пользовательский класс маршрутизации. Пример: 'routeClass' => 'SlugRoute'
  • named используется для настройки именованных параметров на уровне маршрута. Этот ключ использует те же параметры, что и Router::connectNamed().

Вы также можете добавить дополнительные условия для сопоставления маршрутов в массив $defaults. Следующие условия могут быть использованы:

  • [type] Сопоставлять только запросы для определенных типов контента.
  • [method] Сопоставлять только запросы с определенными HTTP-методами.
  • [server] Сопоставлять только в том случае, если $_SERVER['SERVER_NAME'] совпадает с заданным значением.

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

Router::connect('/tasks', array('controller' => 'tasks', 'action' => 'index', '[method]' => 'GET'));

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

Параметры

строка $route
Строка, описывающая шаблон маршрута
массив $defaults необязательно array()

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

массив $options необязательно array()

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

Возвращает

массив
Массив маршрутов

Выбрасывает

RouterException

См. также

Router::$routes
parse().

connectNamed()source public static

connectNamed( array $named , array $options array() )

Устанавливает, какие именованные параметры CakePHP должен извлекать из входящих URL-адресов. По умолчанию CakePHP извлекает все именованные параметры из входящих URL-адресов. Однако, если вы хотите больше контролировать способ извлечения именованных параметров, вы можете использовать одну из следующих настроек:

Не извлекать именованные параметры:

Router::connectNamed(false); ```

Parse only default parameters used for CakePHP's pagination:

Router::connectNamed(false, array('default' => true));

Parse only the page parameter if its value is a number:

Router::connectNamed(array('page' => '[\d]+'), array('default' => false, 'greedy' => false));

Parse only the page parameter no matter what.

Router::connectNamed(array('page'), array('default' => false, 'greedy' => false));

Parse only the page parameter if the current action is 'index'.

Router::connectNamed( array('page' => array('action' => 'index')), array('default' => false, 'greedy' => false) );

Parse only the page parameter if the current action is 'index' and the controller is 'pages'.

Router::connectNamed( array('page' => array('action' => 'index', 'controller' => 'pages')), array('default' => false, 'greedy' => false) ); ```

Параметры

  • greedy Установка в значение true заставит Router анализировать все именованные параметры. Установка в значение false будет анализировать только подключенные именованные параметры.
  • default Установка в значение true объединит набор параметров по умолчанию.
  • reset Установка в значение true очистит существующие правила и начнет заново.
  • separator Изменить строку, используемую для разделения ключа и значения в именованном параметре. По умолчанию :

Параметры

массив $named

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

массив $options необязательно array()
Позволяет управлять всеми настройками: разделитель, жадность, сброс, значение по умолчанию

Возвращает

массив

currentRoute()source public static

currentRoute( )

Возвращает маршрут, соответствующий текущему запросу (полезно для отслеживания requestAction).

Возвращает

CakeRoute
Объект соответствующего маршрута.

defaultRouteClass()source public static

defaultRouteClass( string $routeClass null )

Устанавливает или возвращает текущий класс маршрутизации по умолчанию.

Параметры

строка $routeClass необязательно null
Класс маршрутизации, который следует установить по умолчанию.

Возвращает

строка|null
Класс маршрутизации по умолчанию.

Выбрасывает

RouterException

extensions()source public static

extensions( )

Возвращает список расширений, которые можно анализировать с помощью Router.

Для первоначальной установки расширений используйте Router::parseExtensions() Для добавления большего количества см. setExtensions()

Возвращает

массив
Массив расширений, которые Router настроен на обработку.

fullBaseUrl()source public static

fullBaseUrl( string $base null )

Устанавливает полный базовый URL, который будет использоваться в качестве префикса для генерации полных URL-адресов для этого приложения. Если параметры не переданы, возвращается текущее значение.

Примечание:

Если вы измените значение конфигурации App.fullBaseUrl во время выполнения и ожидаете, что маршрутизатор сгенерирует ссылки, используя новое значение, вам необходимо снова вызвать этот метод, передав это значение.

Параметры

строка $base необязательно null

Префикс для генерируемых URL-адресов, содержащий домен. Например: http://example.com

Возвращает

строка

getNamedExpressions()source public static

getNamedExpressions( )

Получает элементы именованных маршрутов для использования в app/Config/routes.php

Возвращает

массив
Элементы именованных маршрутов

См. также

Router::$_namedExpressions

getParam()source public static

getParam( string $name 'controller' , boolean $current false )

Получает параметр URL по имени

Параметры

строка $name необязательно 'controller'
Имя параметра
логическое $current необязательно false
Текущий параметр, полезно при использовании requestAction

Возвращает

строка|null
Значение параметра

getParams()source public static

getParams( boolean $current false )

Получает информацию о параметрах

Параметры

логическое $current необязательно false
Получить текущий параметр запроса, полезно при использовании requestAction

Возвращает

массив
Информация о параметрах

getPaths()source public static

getPaths( boolean $current false )

Получает информацию о пути.

Параметры

boolean $current необязательный false
Текущий параметр, полезен при использовании requestAction

Возвращает

array

getRequest()source public static

getRequest( boolean $current false )

Получает текущий объект запроса или первый объект.

Параметры

boolean $current необязательный false
True для получения текущего объекта запроса, или false для получения первого объекта.

Возвращает

CakeRequest|null
Null, если стек пуст.

mapResources()source public static

mapResources( string|array $controller , array $options array() )

Создаёт маршруты REST-ресурсов для указанного(ых) контроллера(ов). При создании маршрутов ресурсов для плагина по умолчанию префикс будет изменён на нижний регистр с нижним подчёркиванием имени плагина. Указав префикс, вы можете переопределить это поведение.

Параметры:

  • 'id' - фрагмент регулярного выражения, используемый при сопоставлении идентификаторов. По умолчанию соответствует целочисленным значениям и UUID.
  • 'prefix' - URL-префикс, используемый для сгенерированных маршрутов. По умолчанию '/'.
  • 'connectOptions' – Настраиваемые параметры для соединения маршрутов.

Параметры

string|array $controller
Имя контроллера или массив имён контроллеров (например, "Posts" или "ListItems")
array $options необязательный array()
Параметры, используемые при генерации маршрутов REST

Возвращает

array
Массив сопоставленных ресурсов

namedConfig()source public static

namedConfig( )

Получает текущие значения конфигурации именованных параметров.

Возвращает

array

См. также

Router::$_namedConfig

normalize()source public static

normalize( array|string $url '/' )

Нормализует URL для целей сравнения.

Удалит базовый путь и заменит все двойные / на один /. Не будет унифицировать регистр и подчёркивания в входном значении.

Параметры

array|string $url необязательный '/'
URL для нормализации. Может быть массивом или строкой URL.

Возвращает

string
Нормализованный URL

parse()source public static

parse( string $url )

Разбирает указанную строку URL. Возвращает параметры «маршрутизации» для этого URL.

Параметры

string $url
URL для разбора

Возвращает

array
Разбор элементов из URL

parseExtensions()source public static

parseExtensions( )

Инструктирует маршрутизатор разделить расширения файлов из URL.

Например, http://example.com/posts.rss даст расширение файла "rss". Само расширение файла доступно в контроллере как $this->params['ext'], и используется компонентом RequestHandler для автоматического переключения на альтернативные макеты и шаблоны, и загрузки помощников, соответствующих данному содержимому, например, RssHelper. Переключение макетов и помощников требует, чтобы выбранное расширение имело определённый MIME-тип в CakeResponse.

Список допустимых расширений можно передать в этот метод, например, Router::parseExtensions('rss', 'xml'); Если параметры не указаны, всё после первой точки (.) после последнего / в URL будет обработано, за исключением параметров запроса (например, ?q=...).

См. также

RequestHandler::startup()

popRequest()source public static

popRequest( )

Извлекает запрос из стека запросов. Используется при выполнении requestAction.

Возвращает

CakeRequest
Запрос, удалённый из стека.

См. также

Router::setRequestInfo()
Object::requestAction()

prefixes()source public static

prefixes( )

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

Возвращает

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

promote()source public static

promote( integer $which null )

Перемещает маршрут (по умолчанию, последний добавленный) в начало списка.

Параметры

integer $which необязательный null

Индекс массива (от 0) представляющий маршрут, который нужно передвинуть. Например, если добавлено 3 маршрута, последний будет иметь индекс 2.

Возвращает

boolean
Возвращает false, если маршрут по указанному индексу не существует.

queryString()source public static

queryString( string|array $q , array $extra array() , boolean $escape false )

Генерирует правильно сформированную строку запроса из $q.

Параметры

string|array $q

Строка запроса. Либо строка уже скомпилированных аргументов строки запроса, либо массив аргументов, которые нужно преобразовать в строку запроса.

array $extra необязательный array()
Дополнительные параметры строки запроса.
boolean $escape необязательный false
Использовать ли экранированные &

Возвращает

array

redirect()source public static

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

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

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

Примеры:

Router::redirect('/home/*', array('controller' => 'posts', 'action' => 'view'), array('persist' => true));

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

Router::redirect('/posts/*', 'http://google.com', array('status' => 302));

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

Параметры:

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

Параметры

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

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

Возвращает

array
Массив маршрутов

См. также

Router::$routes

reload()source public static

reload( )

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

requestRoute()source public static

requestRoute( )

Возвращает маршрут, соответствующий текущему URL-адресу запроса.

Возвращает

CakeRoute
Объект соответствующего маршрута.

resourceMap()source public static

resourceMap( array $resourceMap null )

Получение и установка карты ресурсов.

Параметры

массив $resourceMap необязательно null
Карта ресурсов

Возвращает

смешанный тип

См. также

Router::$_resourceMap

reverse()source public static

reverse( CakeRequest|array $params , boolean $full false )

Преобразует массив параметров в строку.

Работает аналогично Router::url(), но поскольку обработанные URL содержат дополнительные ключи 'pass' и 'named', а также 'url.url'. Эти ключи необходимо обрабатывать особым образом для преобразования массива параметров в строку URL.

Это удалит имена параметров 'autoRender', 'bare', 'requested' и 'return', поскольку они используются внутри CakePHP и обычно не должны быть частью выходного URL.

Параметры

CakeRequest|массив $params
Массив параметров или объект CakeRequest, который нужно преобразовать.
логическое значение $full необязательно false

Установите значение в true, чтобы включить полный URL, включая протокол, при преобразовании URL.

Возвращает

строка
Результат преобразования массива в строку

reverseToArray()source public static

reverseToArray( CakeRequest|array $params )

Преобразует массив параметров в массив.

Работает аналогично Router::url(), но поскольку обработанные URL содержат дополнительные ключи 'pass' и 'named', а также 'url.url'. Эти ключи необходимо обрабатывать особым образом для преобразования массива параметров в строку URL.

Это удалит имена параметров 'autoRender', 'bare', 'requested' и 'return', поскольку они используются внутри CakePHP и обычно не должны быть частью выходного URL.

Параметры

CakeRequest|массив $params
Массив параметров или объект CakeRequest, который нужно преобразовать.

Возвращает

массив
Массив URL, готовый для использования при перенаправлении или создании HTML-ссылки.

setExtensions()source public static

setExtensions( array $extensions , boolean $merge true )

Установка/добавление допустимых расширений.

Для обработки расширений необходимо вызвать Router::parseExtensions().

Параметры

массив $extensions
Список расширений, которые следует добавить как допустимые.
логическое значение $merge необязательно true
По умолчанию true — слияние расширений. Установите в false, чтобы переопределить текущие расширения.

Возвращает

массив

setRequestInfo()source public static

setRequestInfo( CakeRequest|array $request )

Получает информацию о параметрах и пути от диспетчера, устанавливает эти параметры как текущие параметры запроса, которые объединяются с массивами URL, созданными позже в запросе.

Вложенные запросы создадут стек запросов. Вы можете удалить запросы с помощью Router::popRequest(). Это делается автоматически при использовании CakeObject::requestAction().

Принимает либо объект CakeRequest, либо массив массивов. Поддержка приема массивов может быть удалена в будущем.

Параметры

CakeRequest|массив $request
Информация о параметрах и пути или объект CakeRequest.

stripPlugin()source public static

stripPlugin( string $base , string $plugin null )

Удаляет имя плагина из базового URL.

Параметры

строка $base
Базовый URL
строка $plugin необязательно null
Имя плагина

Возвращает

строка
базовый URL с удаленным именем плагина, если оно присутствует

url()source public static

url( string|array $url null , boolean|array $full false )

Находит URL для указанного действия.

Возвращает URL, указывающий на комбинацию контроллера и действия. Параметр $url может быть:

  • Пустым - метод найдет адрес фактического контроллера/действия.
  • '/' - метод найдет базовый URL приложения.
  • Комбинацией контроллера/действия - метод найдет URL для него.

Существует несколько «специальных» параметров, которые могут изменить конечную строку URL.

  • base - Установите в false, чтобы удалить базовый путь из сгенерированного URL. Если ваше приложение не находится в корневом каталоге, это можно использовать для создания URL, которые являются 'cake относительными'. Cake-относительные URL требуются при использовании requestAction.
  • ? - Принимает массив параметров строки запроса.
  • # - Позволяет устанавливать фрагменты URL-хеша.
  • full_base - Если true, значение Router::fullBaseUrl() будет добавлен к сгенерированным URL.

Параметры

строка|массив $url необязательно null

Cake-относительный URL, например, "/products/edit/92" или "/presidents/elect/4" или массив, определяющий любые из следующих: 'controller', 'action' и/или 'plugin', а также именованные аргументы (элементы массива с ключами) и стандартные аргументы URL (элементы массива с индексами).

логическое значение|массив $full необязательно false

Если (bool) true, к результату будет добавлен полный базовый URL. Если массив, принимает следующие ключи: escape — используется при создании URL, встроенных в HTML, escape — используется при создании URL, встроенных в HTML; '&' — экранирование символа '&' в строке запроса; full — если true, к результату будет добавлен полный базовый URL.

Возвращает

строка
Полный преобразованный URL с базовым путем.

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

$_currentRoutesource

protected static массив

Маршрут, соответствующий URL текущего запроса

array()

$_fullBaseUrlsource

protected static строка

Содержит базовую строку, которая будет применяться ко всем сгенерированным URL. Например, https://example.com

$_initialStatesource

protected static массив

Инициальное состояние заполняется в первый раз при вызове reload(), которое находится внизу этого файла. Это уловка, так как get_class_vars() возвращает значение статических переменных, даже если они изменились.

array()

$_namedConfigsource

protected static строка

Хранит всю информацию, необходимую для определения того, какие именованные аргументы обрабатываются в каких условиях.

array(
    'default' => array('page', 'fields', 'order', 'limit', 'recursive', 'sort', 'direction', 'step'),
    'greedyNamed' => true,
    'separator' => ':',
    'rules' => false,
)

$_namedExpressionssource

protected static массив

Именованные выражения

array(
    'Action' => Router::ACTION,
    'Year' => Router::YEAR,
    'Month' => Router::MONTH,
    'Day' => Router::DAY,
    'ID' => Router::ID,
    'UUID' => Router::UUID
)

$_parseExtensionssource

protected static логическое значение

Директива для Router, чтобы разобрать расширения файлов для сопоставления с типами контента.

false

$_prefixessource

protected static массив

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

array()

$_requestssource

protected static массив

Поддерживает стек объектов запросов для текущего запроса. Будет содержать более одного объекта запроса при использовании requestAction.

array()

$_resourceMapsource

protected static array

Карта по умолчанию HTTP-запросов => контроллер действие.

array(
    array('action' => 'index', 'method' => 'GET', 'id' => false),
    array('action' => 'view', 'method' => 'GET', 'id' => true),
    array('action' => 'add', 'method' => 'POST', 'id' => false),
    array('action' => 'edit', 'method' => 'PUT', 'id' => true),
    array('action' => 'delete', 'method' => 'DELETE', 'id' => true),
    array('action' => 'edit', 'method' => 'POST', 'id' => true)
)

$_resourceMappedsource

protected static array

Список контроллеров, сопоставленных с ресурсами.

array()

$_routeClasssource

protected static string

Класс маршрута по умолчанию.

'CakeRoute'

$_validExtensionssource

protected static array

Список допустимых расширений для анализа URL. Если null, то разрешено любое расширение.

array()

$initializedsource

public static boolean

Были ли загружены маршруты.

false

$routessource

public static array

Массив маршрутов, подключенных с помощью Router::connect()

array()

© 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/2.10/class-Router.html

Spec-Zone.ru

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