Метод all класса Envelope
Метод all класса Envelope возвращает массив всех
штампов заданного типа, которые были добавлены в конверт
сообщения. Первым параметром передаётся имя класса штампа,
например DelayStamp или HandledStamp. Если
штампов указанного типа в конверте нет, метод вернёт пустой
массив.
Синтаксис
public function all(string $stamp): array
Пример
Давайте создадим конверт с несколькими штампами задержки
и получим их все через метод all:
<?php
namespace App\Service;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Stamp\DelayStamp;
class EnvelopeService
{
public function getDelays(): array
{
$envelope = new Envelope(new \stdClass());
$envelope = $envelope->with(new DelayStamp(1000));
$envelope = $envelope->with(new DelayStamp(2000));
$envelope = $envelope->with(new DelayStamp(3000));
$res = $envelope->all(DelayStamp::class);
return $res;
}
}
?>
Результат выполнения кода:
[
DelayStamp { delay: 1000 },
DelayStamp { delay: 2000 },
DelayStamp { delay: 3000 }
]
Пример
Давайте проверим, что вернёт метод all, если
штампов указанного типа в конверте нет:
<?php
namespace App\Service;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Stamp\DelayStamp;
use Symfony\Component\Messenger\Stamp\HandledStamp;
class EnvelopeService
{
public function getHandled(): array
{
$envelope = new Envelope(new \stdClass());
$envelope = $envelope->with(new DelayStamp(1000));
$res = $envelope->all(HandledStamp::class);
return $res;
}
}
?>
Результат выполнения кода:
[]
Смотрите также
-
класс
Envelope,
который оборачивает сообщение и его штампы -
метод
last,
который возвращает последний штамп указанного типа -
метод
withoutAll,
который удаляет все штампы указанного типа -
класс
DelayStamp,
который задаёт задержку обработки сообщения