Yii2 translated behavior
Это расширение поможет вам быстро добавить возможность перевода вашего сайта.
Это расширение поможет вам быстро добавить возможность перевода вашего сайта.
Приложения являются сервис локаторами. Они хранят множество так называемых
компонентов приложения, которые предоставляют различные средства для обработки запросов. Например,
компонент 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: Хотя вы можете зарегистрировать столько компонентов в приложении сколько вам нужно, все таки стоит это делать разумно. Компоненты приложения похожи на глобальные переменные. Использование слишком большого количества компонентов приложения может потенциально сделать ваш код сложным для разработки и тестирования. В большинстве случаев вы можете просто создать локальный компонент и использовать его при необходимости.
Как упоминалось выше, компонент приложения будет создан только при первом обращении к нему. Однако может возникнуть необходимость в наличии созданного компонента при каждом запросе, даже если напрямую к нему ни разу не обращались. Для этого необходимо указать ID компонента в качестве элемента свойства [[yii\base\Application::bootstrap|bootstrap]].
К примеру, при данной конфигурации компонент log
всегда подгружается при загрузке:
[
'bootstrap' => [
'log',
],
'components' => [
'log' => [
// конфигурация для компонента `log`
],
],
]
В Yii есть несколько встроенных компонентов приложения, с фиксированными ID и конфигурациями по умолчанию. Например, компонент [[yii\web\Application::request|request]] используется для сбора информации о запросе пользователя и разбора его в определенный маршрут; компонент [[yii\base\Application::db|db]] представляет собой соединение с базой данных, через которое вы можете выполнять запросы. Именно с помощью этих встроенных компонентов Yii приложения могут обработать запрос пользователя.
Ниже представлен список встроенных компонентов приложения. Вы можете конфигурировать их также как и другие компоненты приложения. Когда вы конфигурируете встроенный компонент приложения и не указываете класс этого компонента, то значение по умолчанию будет использовано.
long
.
Более детальная информация представлена в разделе Форматирование данных;