Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

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

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

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



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

\Yii::$app->componentID

Например, вы можете использовать \Yii::$app->db для получения [[yii\db\Connection|соединения с БД]], и \Yii::$app->cache для получения доступа к основному компоненту [[yii\caching\Cache|кэша]], зарегистрированному в приложении.

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

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

[
    'components' => [
        // регистрация "cache" компонента с помощью имени класса
        'cache' => 'yii\caching\ApcCache',

        // регистрация "db" компонента с помощью массива конфигурации
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=demo',
            'username' => 'root',
            'password' => '',
        ],

        // регистрация "search" компонента с помощью анонимной функции
        'search' => function () {
            return new app\components\SolrService;
        },
    ],
]

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

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )

Log in to comment