Spec-Zone.ru › Yii 2.0

Класс yii\filters\ContentNegotiator

Все классы | Свойства | Методы
Наследование yii\filters\ContentNegotiator » yii\base\ActionFilter » yii\base\Behavior » yii\base\Object
Реализует yii\base\BootstrapInterface, yii\base\Configurable
Доступно с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/filters/ContentNegotiator.php

ContentNegotiator поддерживает переговорный формат ответа и языка приложения.

Когда свойство поддерживаемых форматов указано, ContentNegotiator будет поддерживать переговорный формат ответа, основываясь на значении параметра GET $formatParam и HTTP-заголовке Accept. Если совпадение найдено, свойство yii\web\Response::$format будет установлено в качестве выбранного формата. Свойства yii\web\Response::$acceptMimeType и yii\web\Response::$acceptParams также будут обновлены соответственно.

Когда свойство поддерживаемых языков указано, ContentNegotiator будет поддерживать переговорный язык приложения, основываясь на значении параметра GET $languageParam и HTTP-заголовке Accept-Language. Если совпадение найдено, свойство yii\base\Application::$language будет установлено в качестве выбранного языка.

Вы можете использовать ContentNegotiator как компонент инициализации, а также как фильтр действия.

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

// in application configuration
use yii\web\Response;

return [
    'bootstrap' => [
        [
            'class' => 'yii\filters\ContentNegotiator',
            'formats' => [
                'application/json' => Response::FORMAT_JSON,
                'application/xml' => Response::FORMAT_XML,
            ],
            'languages' => [
                'en',
                'de',
            ],
        ],
    ],
];

Следующий код демонстрирует, как использовать ContentNegotiator как фильтр действия в контроллере или модуле. В этом случае результат переговорного формата контента применяется только к соответствующему контроллеру или модулю, или даже к определенным действиям, если вы настроите свойство only или except фильтра.

use yii\web\Response;

public function behaviors()
{
    return [
        [
            'class' => 'yii\filters\ContentNegotiator',
            'only' => ['view', 'index'],  // in a controller
            // if in a module, use the following IDs for user actions
            // 'only' => ['user/view', 'user/index']
            'formats' => [
                'application/json' => Response::FORMAT_JSON,
            ],
            'languages' => [
                'en',
                'de',
            ],
        ],
    ];
}

Публичные свойства

Свойство Тип Описание Определено в
$except массив Список идентификаторов действий, к которым данный фильтр не должен применяться. yii\base\ActionFilter
$formatParam строка Имя параметра GET, указывающего формат ответа. yii\filters\ContentNegotiator
$formats массив Список поддерживаемых форматов ответа. yii\filters\ContentNegotiator
$languageParam строка Имя параметра GET, указывающего язык приложения. yii\filters\ContentNegotiator
$languages массив Список поддерживаемых языков. yii\filters\ContentNegotiator
$only массив Список идентификаторов действий, к которым данный фильтр должен применяться. yii\base\ActionFilter
$owner yii\base\Component|null Владелец данного поведения yii\base\Behavior
$request yii\web\Request Текущий запрос. yii\filters\ContentNegotiator
$response yii\web\Response Отправляемый ответ. yii\filters\ContentNegotiator

Публичные методы

Метод Описание Определено в
__call() Вызывает метод, который не является методом класса. yii\base\Object
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства объекта. yii\base\Object
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Object
__set() Устанавливает значение свойства объекта. yii\base\Object
__unset() Устанавливает свойство объекта в null. yii\base\Object
afterAction() Этот метод вызывается сразу после выполнения действия. yii\base\ActionFilter
afterFilter() yii\base\ActionFilter
attach() Прикрепляет объект поведения к компоненту. yii\base\Behavior
beforeAction() Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Вы можете переопределить этот метод, чтобы выполнить подготовку действия в последний момент. yii\filters\ContentNegotiator
beforeFilter() yii\base\ActionFilter
bootstrap() Метод инициализации, вызываемый во время этапа инициализации приложения. yii\filters\ContentNegotiator
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Object
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Object
className() Возвращает полное имя этого класса. yii\base\Object
detach() Открепляет объект поведения от компонента. yii\base\Behavior
events() Объявляет обработчики событий для событий $owner. yii\base\Behavior
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Object
hasProperty() Возвращает значение, указывающее, определено ли свойство. yii\base\Object
init() Инициализирует объект. yii\base\Object
negotiate() Переговоры о формате ответа и языке приложения. yii\filters\ContentNegotiator

Защищённые методы

Метод Описание Определено в
getActionId() Возвращает идентификатор действия, преобразуя yii\base\Action::$uniqueId в идентификатор, относящийся к модулю yii\base\ActionFilter
isActive() Возвращает значение, указывающее, активен ли фильтр для данного действия. yii\base\ActionFilter
isLanguageSupported() Возвращает значение, указывающее, соответствует ли запрашиваемый язык поддерживаемым. yii\filters\ContentNegotiator
negotiateContentType() Переговоры о формате ответа. yii\filters\ContentNegotiator
negotiateLanguage() Переговоры о языке приложения. yii\filters\ContentNegotiator

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

$formatParam общедоступное свойство

Имя параметра GET, указывающего формат ответа. Обратите внимание, что если указанный формат не существует в $formats, будет выброшено исключение yii\web\UnsupportedMediaTypeHttpException. Если значение параметра пустое или это свойство равно null, формат ответа будет определяться только на основе заголовка Accept HTTP.

См. также $formats.

public string $formatParam = '_format'

$formats общедоступное свойство

Список поддерживаемых форматов ответа. Ключи — MIME-типы (например, application/json), а значения — соответствующие форматы (например, html, json), которые должны поддерживаться, как объявлено в yii\web\Response::$formatters.

Если это свойство пустое или не задано, переговоры о формате ответа будут пропущены.

public array $formats = null

$languageParam общедоступное свойство

Имя параметра GET, указывающего язык приложения. Обратите внимание, что если указанный язык не соответствует ни одному из $languages, будет использован первый язык из $languages. Если значение параметра пустое или это свойство равно null, язык приложения будет определяться только на основе заголовка Accept-Language HTTP.

См. также $languages.

public string $languageParam = '_lang'

$languages общедоступное свойство

Список поддерживаемых языков. Ключи массива — поддерживаемые варианты языков (например, en-GB, en-US), а значения — соответствующие коды языков (например, en, de), распознаваемые приложением.

Ключи массива не всегда обязательны. Когда у значения массива нет ключа, сопоставление запрошенного языка будет основано на механизме перехода к резервному языку. Например, значение en будет соответствовать en, en_US, en-US, en-GB, и т.д.

Если это свойство пустое или не задано, переговоры о языке будут пропущены.

public array $languages = null

$request общедоступное свойство

Текущий запрос. Если не задано, будет использован компонент приложения request.

public yii\web\Request $request = null

$response общедоступное свойство

Ответ, который будет отправлен. Если не задано, будет использован компонент приложения response.

public yii\web\Response $response = null

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

beforeAction() общедоступный метод

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

public boolean beforeAction ( $action )
$action yii\base\Action

Действие, которое будет выполнено.

return boolean

Продолжить ли выполнение действия.

bootstrap() общедоступный метод

Метод начальной загрузки, вызываемый во время начального этапа загрузки приложения.

public void bootstrap ( $app )
$app yii\base\Application

Текущее приложение

isLanguageSupported() защищённый метод

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

protected boolean isLanguageSupported ( $requested, $supported )
$requested string

Код запрашиваемого языка

$supported string

Код поддерживаемого языка

return boolean

Поддерживается ли запрашиваемый язык

negotiate() общедоступный метод

Переговоры о формате ответа и языке приложения.

public void negotiate ( )

negotiateContentType() защищённый метод

Переговоры о формате ответа.

protected void negotiateContentType ( $request, $response )
$request yii\web\Request
$response yii\web\Response
throws yii\base\InvalidConfigException

если $formats пустой

throws yii\web\UnsupportedMediaTypeHttpException

если ни один из запрошенных типов содержимого не принимается.

negotiateLanguage() защищённый метод

Переговоры о языке приложения.

protected string negotiateLanguage ( $request )
$request yii\web\Request
return string

Выбранный язык

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-filters-contentnegotiator.html

Spec-Zone.ru

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