Метод all класса ContainerBag
Метод all класса ContainerBag возвращает
ассоциативный массив, содержащий все сервисы, которые
доступны в контейнере. Ключами массива выступают
идентификаторы сервисов, а значениями - сами объекты
сервисов. Метод не принимает параметров и всегда
возвращает массив.
Синтаксис
$res = $containerBag->all();
Пример
Давайте создадим ContainerBag с двумя сервисами
и получим их все через метод all:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentDependencyInjectionParameterBagContainerBag;
class ArticleController extends AbstractController
{
public function index(ContainerBag $bag): Response
{
$services = $bag->all();
return new Response(implode(', ', array_keys($services)));
}
}
?>
Результат выполнения кода:
"service_one, service_two"
Пример
Давайте проверим тип возвращаемого значения и убедимся, что метод возвращает именно массив:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentDependencyInjectionParameterBagContainerBag;
class ArticleController extends AbstractController
{
public function index(ContainerBag $bag): Response
{
$res = $bag->all();
if (is_array($res)) {
return new Response('array');
}
return new Response('not array');
}
}
?>
Результат выполнения кода:
"array"
Пример
Давайте посчитаем количество сервисов в контейнере
с помощью функции count:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentDependencyInjectionParameterBagContainerBag;
class ArticleController extends AbstractController
{
public function index(ContainerBag $bag): Response
{
$services = $bag->all();
$count = count($services);
return new Response((string) $count);
}
}
?>
Результат выполнения кода:
"3"
Смотрите также
-
класс
ContainerBag,
который предоставляет доступ к сервисам контейнера -
метод
get,
который возвращает сервис по его идентификатору -
метод
has,
который проверяет наличие сервиса в контейнере -
метод
resolveValue,
который разрешает значение сервиса