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

Метод getSubject класса GenericEvent

Метод getSubject класса GenericEvent возвращает субъект события. Субъект - это объект, над которым совершается действие, например сущность статьи или пользователя. Субъект передаётся первым параметром в конструктор GenericEvent. Если субъект не был передан, метод вернёт null.

Синтаксис

public function getSubject(): mixed

Пример

Давайте создадим событие с субъектом и получим его через метод getSubject:

<?php namespace AppEvent; use SymfonyContractsEventDispatcherEvent; use SymfonyComponentEventDispatcherGenericEvent; class ArticleEvent { public function __invoke(GenericEvent $event): void { $subject = $event->getSubject(); echo $subject->title; } } ?>

Пример

Давайте передадим субъект в конструктор и проверим его наличие:

<?php namespace AppService; use AppEntityArticle; use SymfonyComponentEventDispatcherEventDispatcherInterface; use SymfonyComponentEventDispatcherGenericEvent; class ArticleService { public function __construct( private EventDispatcherInterface $dispatcher ) { } public function publish(Article $article): void { $event = new GenericEvent($article, ['action' => 'publish']); $this->dispatcher->dispatch($event, 'article.publish'); $subject = $event->getSubject(); if (null !== $subject) { echo $subject->title; } } } ?>

Пример

Давайте создадим событие без субъекта и получим null:

<?php namespace AppService; use SymfonyComponentEventDispatcherGenericEvent; class ArticleService { public function handle(): void { $event = new GenericEvent(); $subject = $event->getSubject(); var_dump($subject); } } ?>

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

NULL

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

  • класс GenericEvent,
    который представляет универсальное событие
  • метод getArgument,
    который возвращает аргумент события
  • метод getArguments,
    который возвращает все аргументы события
  • метод dispatch,
    который запускает событие
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить