РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
729 of 1361 menu

Метод getProvidedServices класса ServiceLocator

Метод getProvidedServices класса ServiceLocator возвращает массив идентификаторов сервисов, которые доступны в данном локаторе. Метод не принимает параметров и возвращает ассоциативный массив, где ключами являются идентификаторы сервисов, а значениями - те же идентификаторы. Это позволяет узнать, какие сервисы зарегистрированы в локаторе, без их фактического получения.

Синтаксис

public function getProvidedServices(): array

Пример

Давайте создадим сервис и зарегистрируем его в локаторе, а затем получим список предоставляемых сервисов:

<?php namespace AppService; class ArticleService { public function getTitle(): string { return 'article'; } } ?>
<?php namespace AppController; use AppServiceArticleService; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentDependencyInjectionServiceLocator; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $locator = new ServiceLocator([ 'ArticleService' => fn () => new ArticleService(), ]); $res = $locator->getProvidedServices(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

{"ArticleService":"ArticleService"}

Пример

Давайте добавим несколько сервисов в локатор и проверим список предоставляемых сервисов:

<?php namespace AppService; class UserService { public function getName(): string { return 'user'; } } ?>
<?php namespace AppService; class ArticleService { public function getTitle(): string { return 'article'; } } ?>
<?php namespace AppController; use AppServiceArticleService; use AppServiceUserService; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentDependencyInjectionServiceLocator; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/services', name: 'article_services')] public function services(): Response { $locator = new ServiceLocator([ 'UserService' => fn () => new UserService(), 'ArticleService' => fn () => new ArticleService(), ]); $res = $locator->getProvidedServices(); return new Response(json_encode($res)); } } ?>

Результат выполнения кода:

{"UserService":"UserService","ArticleService":"ArticleService"}

Смотрите также

  • класс ServiceLocator,
    который реализует паттерн локатор сервисов
  • метод get,
    который возвращает сервис по его идентификатору
  • метод has,
    который проверяет наличие сервиса в локаторе
  • класс Container,
    который управляет сервисами в приложении
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить