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

Метод initialized класса Container

Метод initialized класса Container проверяет, был ли уже создан (инициализирован) сервис с указанным идентификатором. Первым параметром передаётся строковый идентификатор сервиса. Метод возвращает true, если сервис уже создан, и false в противном случае. Этот метод удобен для отложенной проверки без фактического создания экземпляра сервиса.

Синтаксис

public function initialized(string $id): bool

Пример

Давайте проверим, инициализирован ли сервис 'App\Service\ArticleService' до и после его получения:

<?php namespace App\Controller; use App\Service\ArticleService; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $container = $this->container; $before = $container->initialized(ArticleService::class); $container->get(ArticleService::class); $after = $container->initialized(ArticleService::class); return new Response(var_export([$before, $after], true)); } } ?>

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

[false, true]

Пример

Давайте проверим инициализацию нескольких сервисов и выведем результат для каждого из них:

<?php namespace App\Controller; use App\Service\ArticleService; use App\Service\UserService; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/services', name: 'article_services')] public function services(): Response { $container = $this->container; $ids = [ ArticleService::class, UserService::class, ]; $container->get(ArticleService::class); $res = []; foreach ($ids as $id) { $res[$id] = $container->initialized($id); } return new Response(var_export($res, true)); } } ?>

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

[ 'App\Service\ArticleService' => true, 'App\Service\UserService' => false ]

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

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