Spec-Zone.ru › CakePHP 4.3

Class RequestHandlerComponent

Обработка объекта запроса для альтернативных HTTP-запросов.

Этот компонент проверяет запросы различных типов содержимого, таких как JSON, XML, XMLHttpRequest (AJAX), и соответствующим образом настраивает объект ответа и билдер представления.

Он также может проверять HTTP-заголовки кэширования, такие как Last-Modified, If-Modified-Since и т.д., и возвращать ответ соответственно.

Пространство имен: Cake\Controller\Component
Ссылка: 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-запроса, включая:

END_OF_DOCUMENT_MARKER

Методы

__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

Экземпляр ответа.

Возвращает

void

accepts() 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|null

beforeRender() 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 необязательно

Значение для установки.

Возвращает

$this

getConfig() 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 необязательно

Возвращаемое значение, когда ключ не существует.

Возвращает

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

Возвращает конфигурацию для этого ключа.

Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.

Параметры

string $key

Ключ для получения.

Возвращает

mixed

Исключения

InvalidArgumentException

getController() public

getController(): Cake\Controller\Controller

Получить контроллер, к которому привязан этот компонент.

Возвращает

Cake\Controller\Controller

implementedEvents() public

implementedEvents(): array<string, mixed>

События, поддерживаемые этим компонентом.

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

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

Возвращает

array<string, mixed>

initialize() public

initialize(array<string, mixed> $config): void

Метод обратного вызова конструктора.

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

Параметры

array<string, mixed> $config

Параметры конфигурации, предоставленные этому компоненту.

Возвращает

void

log() public

log(string $message, string|int $level = LogLevel::ERROR, array|string $context = []): bool

Метод для записи сообщения в журнал. Подробнее о записи в журналы см. Log::write().

Параметры

string $message

Сообщение журнала.

string|int $level необязательно

Уровень ошибки.

array|string $context необязательно

Дополнительные данные журнала, относящиеся к этому сообщению.

Возвращает

bool

mapAlias() public

mapAlias(array|string $alias): array|string|null

Преобразует псевдоним типа содержимого обратно в MIME-тип(ы).

Параметры

array|string $alias

Строковый псевдоним для преобразования обратно в тип содержимого. Или массив псевдонимов для преобразования.

Возвращает

array|string|null

prefers() public

prefers(array<string>|string|null $type = null): string|bool|null

Определяет, какие типы содержимого предпочитает клиент. Если параметры не указаны, возвращается единственный тип содержимого, который клиент, скорее всего, предпочитает. Если $type является массивом, возвращается первый элемент массива, который клиент принимает. Предпочтение определяется в первую очередь расширением файла, проанализированным маршрутизатором (если указано), а во-вторых, списком типов содержимого, указанным в HTTP_ACCEPT.

Параметры

array<string>|string|null $type необязательно

Необязательный массив «дружественных» имён типов содержимого, например, «html», «xml», «js» и т. д.

Возвращает

string|bool|null

renderAs() 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

См. также

\Cake\Controller\Component\RequestHandlerComponent::respondAs()

requestedWith() public

requestedWith(array<string>|string|null $type = null): mixed

Определяет тип содержимого данных, отправленных клиентом (например, в запросе POST).

Параметры

array<string>|string|null $type необязательно

Может быть null (или без параметра), строковым именем типа или массивом типов

Возвращает

mixed

respondAs() 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 используется для выбора типа содержимого, который нужно использовать.

Возвращает

bool

setConfig() 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

Spec-Zone.ru

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