Class RequestHandlerComponent
Обработка объекта запроса для альтернативных HTTP-запросов.
Этот компонент проверяет запросы различных типов содержимого, таких как JSON, XML, XMLHttpRequest (AJAX), и соответствующим образом настраивает объект ответа и билдер представления.
Он также может проверять HTTP-заголовки кэширования, такие как Last-Modified, If-Modified-Since и т.д., и возвращать ответ соответственно.
Ссылка: https://book.cakephp.org/4/ru/controllers/components/request-handling.html
Краткое описание свойств
- $_componentMap protected
array<string, array>Таблица поиска компонентов, используемая для ленивой загрузки объектов компонентов.
- $_config protected
array<string, mixed>Конфигурация выполнения
- $_configInitialized protected
boolУказывает, была ли конфигурация уже настроена со значениями по умолчанию
- $_defaultConfig protected
array<string, mixed>Конфигурация по умолчанию
- $_registry protected
Cake\Controller\ComponentRegistryКласс реестра компонентов, используемый для ленивой загрузки компонентов.
- $_renderType protected
string|nullТип шаблона для использования при рендеринге заданного типа содержимого.
- $components protected
arrayДругие компоненты, используемые этим компонентом.
- $ext protected
string|nullСодержит расширение файла, полученное из маршрутизатора.
Краткое описание методов
-
__construct() public
Конструктор. Парсит принятые типы содержимого, принятые клиентом с помощью HTTP_ACCEPT.
-
__debugInfo() public
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
-
__get() public
Магический метод для ленивой загрузки $components.
-
_configDelete() protected
Удаляет единственный ключ конфигурации.
-
_configRead() protected
Читает ключ конфигурации.
-
_configWrite() protected
Записывает ключ конфигурации.
-
_setExtension() protected
Устанавливает расширение на основе заголовка
Acceptили расширения URL. -
accepts() public
Определяет типы содержимого, которые принимает клиент. Принятие основано на расширении файла, обработанном маршрутизатором (если оно присутствует), и на заголовке HTTP_ACCEPT. В отличие от {@link \Cake\Http\ServerRequest::accepts()} этот метод полностью работает с сопоставленными типами содержимого.
-
beforeRender() public
Проверяет, можно ли считать ответ другим в соответствии с заголовками запроса и заголовками кэширования ответа. Если он не изменялся, процесс рендеринга пропускается. И клиент получит пустой ответ с заголовком «304 Not Modified».
-
configShallow() public
Объединяет предоставленную конфигурацию с существующей конфигурацией. В отличие от
config(), который выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение. -
getConfig() public
Возвращает конфигурацию.
-
getConfigOrFail() public
Возвращает конфигурацию для этого конкретного ключа.
-
getController() public
Получить контроллер, к которому привязан этот компонент.
-
implementedEvents() public
События, поддерживаемые этим компонентом.
-
initialize() public
Метод обработки вставки конструктора.
-
log() public
Удобный метод для записи сообщения в журнал. См. Log::write() для получения дополнительной информации о записи в журналы.
-
mapAlias() public
Преобразует псевдоним типа содержимого обратно в его MIME-тип(ы)
-
prefers() public
Определяет, какие типы содержимого клиент предпочитает. Если не указаны параметры, возвращается единственный тип содержимого, который клиент, скорее всего, предпочитает. Если $type — массив, возвращается первый элемент массива, который клиент принимает. Предпочтение определяется в первую очередь расширением файла, обработанным маршрутизатором, если оно предоставлено, а во вторую очередь — списком типов содержимого, предоставленным в HTTP_ACCEPT.
-
renderAs() public
Устанавливает класс представления, если он существует, или путь к макету и шаблону представления. Имена этих элементов получены из входного параметра $type.
-
requestedWith() public
Определяет тип содержимого данных, отправленных клиентом (например, в запросе POST).
-
respondAs() public
Устанавливает заголовок ответа на основе имени индекса карты типов. Это оборачивает несколько методов, доступных в {@link \Cake\Http\Response}. Это также позволяет использовать псевдонимы типов содержимого.
-
setConfig() public
Устанавливает конфигурацию.
-
startup() public
Метод запуска RequestHandler позволяет реализовать несколько автоматических действий, связанных с определением определенных свойств HTTP-запроса, включая:
Методы
__construct() public
__construct(Cake\Controller\ComponentRegistry $registry, array<string, mixed> $config = [])
Конструктор. Парсит допустимые типы контента, принятые клиентом, используя HTTP_ACCEPT
Параметры
-
Cake\Controller\ComponentRegistry$registry Объект ComponentRegistry.
-
array<string, mixed>$config необязательно Массив конфигурации.
__debugInfo() public
__debugInfo(): array<string, mixed>
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
array<string, mixed>__get() public
__get(string $name): Cake\Controller\Component|null
Магический метод для ленивой загрузки $components.
Параметры
-
string$name Имя компонента для получения.
Возвращает
Cake\Controller\Component|null_configDelete() protected
_configDelete(string $key): void
Удаляет единственный ключ конфигурации.
Параметры
-
string$key Ключ для удаления.
Возвращает
voidИсключения
Cake\Core\Exception\CakeExceptionпри попытке перезаписи существующей конфигурации
_configRead() protected
_configRead(string|null $key): mixed
Считывает ключ конфигурации.
Параметры
-
string|null$key Ключ для чтения.
Возвращает
mixed_configWrite() protected
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
Записывает ключ конфигурации.
Параметры
-
array<string, mixed>|string$key Ключ для записи.
-
mixed$value Значение для записи.
-
string|bool$merge необязательно Истина для рекурсивного объединения, 'shallow' для простого объединения, ложь для перезаписи, по умолчанию ложь.
Возвращает
voidИсключения
Cake\Core\Exception\CakeExceptionпри попытке перезаписи существующей конфигурации
_setExtension() protected
_setExtension(Cake\Http\ServerRequest $request, Cake\Http\Response $response): void
Устанавливает расширение на основе заголовка Accept или расширения URL.
Сравнивает принятые типы и настроенные расширения. Если существует один общий тип, он назначается как ext/тип контента для ответа. Будет установлен тип с наибольшим весом. Если тип с наибольшим весом имеет более одного совпадающего типа с расширениями, порядок указания расширений определяет, какой тип будет установлен.
Если html является одним из предпочтительных типов, тип контента не будет установлен, это сделано для устранения проблем с браузерами, которые предпочитают HTML и несколько других типов контента.
Параметры
-
Cake\Http\ServerRequest$request Экземпляр запроса.
-
Cake\Http\Response$response Экземпляр ответа.
Возвращает
voidaccepts() public
accepts(array<string>|string|null $type = null): array|bool|string|null
Определяет, какие типы контента принимает клиент. Принятие основано на расширении файла, проанализированном маршрутизатором (если есть), и заголовке HTTP_ACCEPT. В отличие от {@link \Cake\Http\ServerRequest::accepts()} этот метод полностью работает с сопоставленными типами контента.
Использование:
$this->RequestHandler->accepts(['xml', 'html', 'json']);
Возвращает true, если клиент принимает любой из предоставленных типов.
$this->RequestHandler->accepts('xml'); Возвращает true, если клиент принимает XML.
Параметры
-
array<string>|string|null$type необязательно Может быть null (или без параметра), строковое имя типа или массив типов
Возвращает
array|bool|string|nullbeforeRender() public
beforeRender(Cake\Event\EventInterface $event): void
Проверяет, можно ли считать ответ отличным в соответствии с заголовками запроса и заголовками кеширования ответа. Если он не изменялся, процесс рендеринга пропускается. И клиент получит пустой ответ с заголовком "304 Not Modified".
- Если Router::extensions() включен, тип макета и шаблона переключаются на основе проанализированного расширения или заголовка
Accept. Например, если запрашиваетсяcontroller/action.xml, путь к представлению становитсяtemplates/Controller/xml/action.php. Также, если запрашиваетсяcontroller/actionсAccept: application/xmlв заголовках, путь к представлению станетtemplates/Controller/xml/action.php. Типы макета и шаблона будут переключаться только на типы MIME, распознаваемые \Cake\Http\Response. Если вам нужно объявить дополнительные типы MIME, вы можете сделать это, используя {@link \Cake\Http\Response::setTypeMap()} в методе перед фильтром вашего контроллера. - Если помощник с тем же именем, что и расширение, существует, он добавляется к контроллеру.
- Если расширение относится к типу, который понимает RequestHandler, он установит этот тип контента в заголовке ответа.
Параметры
-
Cake\Event\EventInterface$event Событие Controller.beforeRender.
Возвращает
voidИсключения
Cake\Http\Exception\NotFoundExceptionЕсли вызванное расширение не настроено.
configShallow() public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
Объединить предоставленную конфигурацию с существующей конфигурацией. В отличие от config(), который выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.
Установка конкретного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или полный массив конфигураций.
-
mixed|null$value необязательно Значение для установки.
Возвращает
$thisgetConfig() public
getConfig(string|null $key = null, mixed $default = null): mixed
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение определенного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
-
string|null$key необязательно Ключ для получения или null для всей конфигурации.
-
mixed$default необязательно Возвращаемое значение, когда ключ не существует.
Возвращает
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
Возвращает конфигурацию для этого ключа.
Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.
Параметры
-
string$key Ключ для получения.
Возвращает
mixedИсключения
InvalidArgumentExceptiongetController() public
getController(): Cake\Controller\Controller
Получить контроллер, к которому привязан этот компонент.
Возвращает
Cake\Controller\ControllerimplementedEvents() public
implementedEvents(): array<string, mixed>
События, поддерживаемые этим компонентом.
Использует соглашения для сопоставления событий контроллера со стандартными именами методов обратного вызова компонента. Определяя один из методов обратного вызова, предполагается, что компонент заинтересован в соответствующем событии.
Переопределите этот метод, если вам нужно добавить обработчики событий, не соответствующие соглашениям. Или если вы хотите, чтобы компоненты слушали нестандартные события.
Возвращает
array<string, mixed>initialize() public
initialize(array<string, mixed> $config): void
Метод обратного вызова конструктора.
Реализуйте этот метод, чтобы избежать необходимости перезаписывать конструктор и вызывать родительский.
Параметры
-
array<string, mixed>$config Параметры конфигурации, предоставленные этому компоненту.
Возвращает
voidlog() public
log(string $message, string|int $level = LogLevel::ERROR, array|string $context = []): bool
Метод для записи сообщения в журнал. Подробнее о записи в журналы см. Log::write().
Параметры
-
string$message Сообщение журнала.
-
string|int$level необязательно Уровень ошибки.
-
array|string$context необязательно Дополнительные данные журнала, относящиеся к этому сообщению.
Возвращает
boolmapAlias() public
mapAlias(array|string $alias): array|string|null
Преобразует псевдоним типа содержимого обратно в MIME-тип(ы).
Параметры
-
array|string$alias Строковый псевдоним для преобразования обратно в тип содержимого. Или массив псевдонимов для преобразования.
Возвращает
array|string|nullprefers() public
prefers(array<string>|string|null $type = null): string|bool|null
Определяет, какие типы содержимого предпочитает клиент. Если параметры не указаны, возвращается единственный тип содержимого, который клиент, скорее всего, предпочитает. Если $type является массивом, возвращается первый элемент массива, который клиент принимает. Предпочтение определяется в первую очередь расширением файла, проанализированным маршрутизатором (если указано), а во-вторых, списком типов содержимого, указанным в HTTP_ACCEPT.
Параметры
-
array<string>|string|null$type необязательно Необязательный массив «дружественных» имён типов содержимого, например, «html», «xml», «js» и т. д.
Возвращает
string|bool|nullrenderAs() public
renderAs(Cake\Controller\Controller $controller, string $type, array<string, mixed> $options = []): void
Устанавливает класс представления, если он существует, или путь к макету и шаблону представления. Названия этих элементов выводятся из входного параметра $type.
Использование:
Отобразить ответ как ответ «ajax».
$this->RequestHandler->renderAs($this, 'ajax');
Отобразить ответ как XML-файл и принудительно загрузить результат как файл.
$this->RequestHandler->renderAs($this, 'xml', ['attachment' => 'myfile.xml'];
Параметры
-
Cake\Controller\Controller$controller Ссылка на объект контроллера
-
string$type Тип ответа (например: «ajax»)
-
array<string, mixed>$options необязательно Массив параметров
Возвращает
voidСм. также
requestedWith() public
requestedWith(array<string>|string|null $type = null): mixed
Определяет тип содержимого данных, отправленных клиентом (например, в запросе POST).
Параметры
-
array<string>|string|null$type необязательно Может быть null (или без параметра), строковым именем типа или массивом типов
Возвращает
mixedrespondAs() public
respondAs(string $type, array<string, mixed> $options = []): bool
Устанавливает заголовок ответа на основе имени индекса карты типов. Оборачивает несколько методов, доступных в {@link \Cake\Http\Response}. Также позволяет использовать псевдонимы типов содержимого.
Параметры
-
string$type Дружественное имя типа, например, «html» или «xml», или полный тип содержимого, например, «application/x-shockwave».
-
array<string, mixed>$options необязательно Если $type — это дружественное имя типа, которое ассоциировано с более чем одним типом содержимого, $index используется для выбора типа содержимого, который нужно использовать.
Возвращает
boolsetConfig() public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
Устанавливает конфигурацию.
Использование
Установка определенного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких параметров конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
-
array<string, mixed>|string$key Ключ для установки или полный массив конфигураций.
-
mixed|null$value необязательно Значение для установки.
-
bool$merge необязательно Требуется ли рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.
Возвращает
$thisВыбрасывает
Cake\Core\Exception\CakeExceptionПри попытке установить недопустимый ключ.
startup() public
startup(Cake\Event\EventInterface $event): void
Метод startup компонента RequestHandler позволяет выполнять несколько автоматических действий, связанных с определением определенных свойств HTTP-запроса, включая:
Если XML-данные отправлены методом POST, данные анализируются в XML-объект, который присваивается свойству $data контроллера, которое затем может быть сохранено в объекте модели.
Параметры
-
Cake\Event\EventInterface$event Событие запуска, которое было запущено.
Возвращает
voidПодробное описание свойств
$_componentMap protected
Таблица поиска компонентов, используемая для отложенной загрузки объектов компонентов.
Тип
array<string, array>$_config protected
Конфигурация выполнения
Тип
array<string, mixed>$_configInitialized protected
Указывает, была ли конфигурация свойств уже настроена по умолчанию
Тип
bool$_defaultConfig protected
Конфигурация по умолчанию
Эти параметры объединяются с предоставленными пользователем параметрами при использовании компонента.
-
checkHttpCache— Проверка кеша HTTP. Значение по умолчаниюtrue. -
viewClassMap— Сопоставление типов с классами представлений. Если не определено, JSON, XML и AJAX будут сопоставлены. Определение любых типов игнорирует значения по умолчанию.
Тип
array<string, mixed>$_registry protected
Класс реестра компонентов, используемый для отложенной загрузки компонентов.
Тип
Cake\Controller\ComponentRegistry$_renderType protected
Тип шаблона, который следует использовать при отображении заданного типа содержимого.
Тип
string|null$components protected
Другие компоненты, используемые этим компонентом.
Тип
array$ext protected
Содержит расширение файла, проанализированное маршрутизатором.
Тип
string|null
© 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.Controller.Component.RequestHandlerComponent.html