|
|
|
@ -2,7 +2,7 @@ Service Locator
|
|
|
|
|
============= |
|
|
|
|
|
|
|
|
|
Service Locator является объектом, предоставляющим всевозможные сервисы (или компоненты), которые могут понадобиться |
|
|
|
|
приложению. В Service Locator, каждый компонент представлен единственным экземпляром, имеющим уникальный ID. |
|
|
|
|
приложению. В Service Locator каждый компонент представлен единственным экземпляром, имеющим уникальный ID. |
|
|
|
|
Уникальный идентификатор (ID) может быть использован для получения компонента из Service Locator. |
|
|
|
|
|
|
|
|
|
В Yii Service Locator является экземпляром класса [[yii\di\ServiceLocator]] или его дочернего класса. |
|
|
|
@ -50,7 +50,7 @@ $cache = $locator->get('cache');
|
|
|
|
|
$cache = $locator->cache; |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
Как видно выше, [[yii\di\ServiceLocator]] позволяет обратиться к компоненту как к свойству используя его ID. |
|
|
|
|
Как видно выше, [[yii\di\ServiceLocator]] позволяет обратиться к компоненту как к свойству, используя его ID. |
|
|
|
|
При первом обращении к компоненту, [[yii\di\ServiceLocator]] создаст новый экземпляр компонента на основе регистрационной |
|
|
|
|
информации и вернёт его. При повторном обращении к компоненту Service Locator вернёт тот же экземпляр. |
|
|
|
|
|
|
|
|
@ -88,7 +88,7 @@ return [
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
Есть альтернативный приведённому выше способ настройки компонента `search`. Вместо анонимной функции, которая |
|
|
|
|
отдаёт экземпляр `SolrService` можно использовать статический метод, возвращающий такую анонимную функцию: |
|
|
|
|
отдаёт экземпляр `SolrService`, можно использовать статический метод, возвращающий такую анонимную функцию: |
|
|
|
|
|
|
|
|
|
```php |
|
|
|
|
class SolrServiceBuilder |
|
|
|
@ -112,7 +112,7 @@ return [
|
|
|
|
|
]; |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
Это особенно полезно если вы создаёте компонент для Yii, являющийся обёрткой над какой-либо сторонней библиотекой. |
|
|
|
|
Это особенно полезно, если вы создаёте компонент для Yii, являющийся обёрткой над какой-либо сторонней библиотекой. |
|
|
|
|
Подобный приведённому выше статический метод позволяет скрыть от конечного пользователя сложную логику настройки |
|
|
|
|
сторонней библиотеки. Пользователю будет достаточно вызвать статический метод. |
|
|
|
|
|
|
|
|
|