Метод getArgument класса GenericEvent
Метод getArgument класса GenericEvent возвращает значение аргумента события по его имени. Первым параметром передаётся имя аргумента в виде строки. Если аргумент с таким именем не был установлен, метод выбрасывает исключение InvalidArgumentException. Класс GenericEvent позволяет хранить произвольные данные о событии в виде пары ключ-значение.
Синтаксис
public function getArgument(string $key): mixed
Пример
Давайте создадим событие, установим аргумент 'user' и получим его значение:
<?php
namespace AppService;
use SymfonyComponentEventDispatcherGenericEvent;
class ArticleService
{
public function process(): void
{
$event = new GenericEvent();
$event->setArgument('user', 'abcde');
echo $event->getArgument('user');
}
}
?>
Результат выполнения кода:
"abcde"
Пример
Давайте передадим массив аргументов в конструктор события и получим один из них:
<?php
namespace AppService;
use SymfonyComponentEventDispatcherGenericEvent;
class ArticleService
{
public function process(): void
{
$event = new GenericEvent(null, ['id' => 1, 'title' => 'hello']);
echo $event->getArgument('title');
}
}
?>
Результат выполнения кода:
"hello"
Пример
Давайте получим аргумент внутри слушателя события:
<?php
namespace AppService;
use SymfonyComponentEventDispatcherEventDispatcher;
use SymfonyComponentEventDispatcherGenericEvent;
class ArticleService
{
public function process(): void
{
$dispatcher = new EventDispatcher();
$dispatcher->addListener('article.event', function (GenericEvent $event): void {
echo $event->getArgument('user');
});
$event = new GenericEvent(null, ['user' => 'abcde']);
$dispatcher->dispatch($event, 'article.event');
}
}
?>
Результат выполнения кода:
"abcde"
Смотрите также
-
класс
GenericEvent,
который представляет произвольное событие -
метод
setArgument,
который устанавливает аргумент события -
метод
hasArgument,
который проверяет наличие аргумента -
метод
getArguments,
который возвращает все аргументы события