Spec-Zone.ru › Yii 2.0

Компоненты приложений

  1. Компоненты инициализации
  2. Основные компоненты приложения

Приложения являются локаторами сервисов. Они содержат набор так называемых компонентов приложения, которые предоставляют различные сервисы для обработки запросов. Например, компонент urlManager отвечает за маршрутизацию веб-запросов соответствующим контроллерам; компонент db предоставляет сервисы, связанные с базой данных; и так далее.

Каждый компонент приложения имеет идентификатор, который однозначно определяет его среди других компонентов приложения в одном приложении. Вы можете получить доступ к компоненту приложения через выражение:

\Yii::$app->componentID

Например, вы можете использовать \Yii::$app->db для получения соединения с базой данных, и \Yii::$app->cache для получения зарегистрированного в приложении главного кэша.

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

Компоненты приложения могут быть любыми объектами. Вы можете зарегистрировать их, настроив свойство yii\base\Application::$components в конфигурациях приложения. Например,

[
    'components' => [
        // register "cache" component using a class name
        'cache' => 'yii\caching\ApcCache',

        // register "db" component using a configuration array
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=demo',
            'username' => 'root',
            'password' => '',
        ],

        // register "search" component using an anonymous function
        'search' => function () {
            return new app\components\SolrService;
        },
    ],
]

Информация: Хотя вы можете зарегистрировать любое количество компонентов приложения, следует делать это обдуманно. Компоненты приложения похожи на глобальные переменные. Использование слишком большого количества компонентов приложения может потенциально усложнить тестирование и поддержку вашего кода. Во многих случаях вы можете просто создать локальный компонент и использовать его по мере необходимости.

Компоненты инициализации

Как упоминалось выше, компонент приложения будет создан только при первом обращении к нему. Если он вообще не используется в запросе, он не будет создан. Однако иногда вам может потребоваться создать компонент приложения для каждого запроса, даже если он не используется явно. Для этого вы можете указать его идентификатор в свойстве bootstrap приложения.

Например, следующая конфигурация приложения гарантирует, что компонент log всегда загружается:

[
    'bootstrap' => [
        'log',
    ],
    'components' => [
        'log' => [
            // configuration for "log" component
        ],
    ],
]

Основные компоненты приложения

Yii определяет набор основных компонентов приложения с фиксированными идентификаторами и значениями по умолчанию. Например, компонент request используется для сбора информации о запросе пользователя и преобразования его в маршрут; компонент db представляет собой подключение к базе данных, с помощью которого вы можете выполнять запросы к базе данных. Именно с помощью этих основных компонентов приложения Yii-приложения могут обрабатывать запросы пользователей.

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

  • assetManager: управляет пакетами ресурсов и публикацией ресурсов. Подробную информацию см. в разделе Управление ресурсами.
  • db: представляет собой подключение к базе данных, с помощью которого можно выполнять запросы к БД. Обратите внимание, что при настройке этого компонента необходимо указать класс компонента, а также другие необходимые свойства компонента, такие как yii\db\Connection::$dsn. Подробную информацию см. в разделе Объекты доступа к данным.
  • errorHandler: обрабатывает ошибки PHP и исключения. Подробную информацию см. в разделе Обработка ошибок.
  • formatter: форматирует данные при их отображении конечным пользователям. Например, число может отображаться с разделителем тысяч, дата — в длинном формате. Подробную информацию см. в разделе Форматирование данных.
  • i18n: поддерживает перевод и форматирование сообщений. Подробную информацию см. в разделе Международная поддержка.
  • log: управляет целевыми логами. Подробную информацию см. в разделе Ведение журнала.
  • mailer: поддерживает создание и отправку писем. Подробную информацию см. в разделе Отправка почты.
  • response: представляет собой ответ, отправляемый конечным пользователям. Подробную информацию см. в разделе Ответы.
  • request: представляет собой запрос, полученный от конечных пользователей. Подробную информацию см. в разделе Запросы.
  • session: представляет собой информацию о сессии. Этот компонент доступен только в веб-приложениях. Подробную информацию см. в разделе Сессии и файлы cookie.
  • urlManager: поддерживает парсинг и создание URL-адресов. Подробную информацию см. в разделе Маршрутизация и создание URL-адресов.
  • user: представляет собой информацию об авторизации пользователя. Этот компонент доступен только в веб-приложениях. Подробную информацию см. в разделе Авторизация.
  • view: поддерживает отрисовку представлений. Подробную информацию см. в разделе Представления.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/guide-structure-application-components.html

Spec-Zone.ru

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