Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Collection.php
Go to the documentation of this file.
1 <?php
13 
15 
17 {
23  protected $events;
24 
32  protected $globalObservers;
33 
40  public function __construct(array $events = [], Observer\Collection $observerCollection = null)
41  {
42  $this->events = $events;
43  $this->globalObservers = !$observerCollection ? new Observer\Collection() : $observerCollection;
44  }
45 
51  public function getAllEvents()
52  {
53  return $this->events;
54  }
55 
61  public function getGlobalObservers()
62  {
64  }
65 
74  public function getEventByName($eventName)
75  {
76  if (!isset($this->events[$eventName])) {
77  $this->addEvent(new Event(['name' => $eventName]));
78  }
79  return $this->events[$eventName];
80  }
81 
88  public function addEvent(Event $event)
89  {
90  $this->events[$event->getName()] = $event;
91  return $this;
92  }
93 
103  public function addObserver(Observer $observer)
104  {
105  $eventName = $observer->getEventName();
106  if ($eventName) {
107  $this->getEventByName($eventName)->addObserver($observer);
108  } else {
109  $this->getGlobalObservers()->addObserver($observer);
110  }
111  return $this;
112  }
113 
123  public function dispatch($eventName, array $data = [])
124  {
125  $event = $this->getEventByName($eventName);
126  $event->addData($data)->dispatch();
127  $this->getGlobalObservers()->dispatch($event);
128  return $this;
129  }
130 }
dispatch($eventName, array $data=[])
Definition: Collection.php:123
__construct(array $events=[], Observer\Collection $observerCollection=null)
Definition: Collection.php:40
addObserver(Observer $observer)
Definition: Collection.php:103