Метод getArguments класса GenericEvent
Метод getArguments класса GenericEvent возвращает все аргументы события в виде ассоциативного массива. Класс GenericEvent используется в компоненте EventDispatcher для передачи произвольных данных вместе с событием. Аргументы задаются при создании события и могут быть изменены через метод setArgument. Метод getArguments не принимает параметров и возвращает массив, где ключами являются имена аргументов, а значениями - их значения.
Синтаксис
public function getArguments(): array
Пример
Давайте создадим событие GenericEvent с несколькими аргументами и получим их через метод getArguments:
<?php
namespace AppEvent;
use SymfonyComponentEventDispatcherGenericEvent;
class ExampleEvent
{
public function createEvent(): GenericEvent
{
$subject = new stdClass();
$arguments = ['name' => 'abcde', 'age' => 25];
return new GenericEvent($subject, $arguments);
}
}
?>
Теперь получим все аргументы события:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentEventDispatcherGenericEvent;
class EventController extends AbstractController
{
public function index(): Response
{
$subject = new stdClass();
$event = new GenericEvent($subject, ['name' => 'abcde', 'age' => 25]);
$res = $event->getArguments();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
{"name":"abcde","age":25}
Пример
Давайте изменим один из аргументов через метод setArgument и снова получим все аргументы:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentEventDispatcherGenericEvent;
class EventController extends AbstractController
{
public function index(): Response
{
$subject = new stdClass();
$event = new GenericEvent($subject, ['name' => 'abcde', 'age' => 25]);
$event->setArgument('age', 30);
$res = $event->getArguments();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
{"name":"abcde","age":30}
Пример
Давайте проверим, что метод возвращает пустой массив, если аргументы не были заданы:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentEventDispatcherGenericEvent;
class EventController extends AbstractController
{
public function index(): Response
{
$subject = new stdClass();
$event = new GenericEvent($subject);
$res = $event->getArguments();
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
[]
Смотрите также
-
класс
GenericEvent,
который представляет событие с произвольными данными -
метод
getArgument,
который возвращает значение одного аргумента -
метод
setArgument,
который устанавливает значение аргумента -
метод
hasArgument,
который проверяет наличие аргумента