Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Attributes
Collection Class Reference

Public Member Functions

 __construct (array $events=[], Observer\Collection $observerCollection=null)
 
 getAllEvents ()
 
 getGlobalObservers ()
 
 getEventByName ($eventName)
 
 addEvent (Event $event)
 
 addObserver (Observer $observer)
 
 dispatch ($eventName, array $data=[])
 

Protected Attributes

 $events
 
 $globalObservers
 

Detailed Description

Definition at line 16 of file Collection.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( array  $events = [],
Observer\Collection  $observerCollection = null 
)

Initializes global observers collection

Parameters
array$events
Observer\Collection$observerCollection

Definition at line 40 of file Collection.php.

41  {
42  $this->events = $events;
43  $this->globalObservers = !$observerCollection ? new Observer\Collection() : $observerCollection;
44  }

Member Function Documentation

◆ addEvent()

addEvent ( Event  $event)

Register an event for this collection

Parameters
Event$event
Returns
$this

Definition at line 88 of file Collection.php.

89  {
90  $this->events[$event->getName()] = $event;
91  return $this;
92  }

◆ addObserver()

addObserver ( Observer  $observer)

Register an observer

If observer has event_name property it will be registered for this specific event. If not it will be registered as global observer

Parameters
Observer$observer
Returns
$this

Definition at line 103 of file Collection.php.

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  }

◆ dispatch()

dispatch (   $eventName,
array  $data = [] 
)

Dispatch event name with optional data

Will dispatch specific event and will try all global observers

Parameters
string$eventName
array$data
Returns
$this

Definition at line 123 of file Collection.php.

124  {
125  $event = $this->getEventByName($eventName);
126  $event->addData($data)->dispatch();
127  $this->getGlobalObservers()->dispatch($event);
128  return $this;
129  }

◆ getAllEvents()

getAllEvents ( )

Returns all registered events in collection

Returns
array

Definition at line 51 of file Collection.php.

52  {
53  return $this->events;
54  }

◆ getEventByName()

getEventByName (   $eventName)

Returns event by its name

If event doesn't exist creates new one and returns it

Parameters
string$eventName
Returns
Event

Definition at line 74 of file Collection.php.

75  {
76  if (!isset($this->events[$eventName])) {
77  $this->addEvent(new Event(['name' => $eventName]));
78  }
79  return $this->events[$eventName];
80  }

◆ getGlobalObservers()

getGlobalObservers ( )

Returns all registered global observers for the collection of events

Returns
Observer\Collection

Definition at line 61 of file Collection.php.

Field Documentation

◆ $events

$events
protected

Definition at line 23 of file Collection.php.

◆ $globalObservers

$globalObservers
protected

Definition at line 32 of file Collection.php.


The documentation for this class was generated from the following file: