b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / a / home / dev2.destoffenstraat.com / vendor / magento / framework / Event /
Filename/home/a/home/dev2.destoffenstraat.com/vendor/magento/framework/Event/Collection.php
Size3 kb
Permissionrw-r--r--
Ownerroot : root
Create time21-Aug-2025 12:26
Last modified07-Jan-2021 21:08
Last accessed23-Aug-2025 00:34
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

/**
* Collection of events
*
* @author Magento Core Team <core@magentocommerce.com>
*/
namespace Magento\Framework\Event;

use Magento\Framework\Event;

class Collection
{
/**
* Array of events in the collection
*
* @var array
*/
protected $events;

/**
* Global observers
*
* For example regex observers will watch all events that
*
* @var Observer\Collection
*/
protected $globalObservers;

/**
* Initializes global observers collection
*
* @param array $events
* @param Observer\Collection $observerCollection
*/
public function __construct(array $events = [], Observer\Collection $observerCollection = null)
{
$this->events = $events;
$this->globalObservers = !$observerCollection ? new Observer\Collection() : $observerCollection;
}

/**
* Returns all registered events in collection
*
* @return array
*/
public function getAllEvents()
{
return $this->events;
}

/**
* Returns all registered global observers for the collection of events
*
* @return Observer\Collection
*/
public function getGlobalObservers()
{
return $this->globalObservers;
}

/**
* Returns event by its name
*
* If event doesn't exist creates new one and returns it
*
* @param string $eventName
* @return Event
*/
public function getEventByName($eventName)
{
if (!isset($this->events[$eventName])) {
$this->addEvent(new Event(['name' => $eventName]));
}
return $this->events[$eventName];
}

/**
* Register an event for this collection
*
* @param Event $event
* @return $this
*/
public function addEvent(Event $event)
{
$this->events[$event->getName()] = $event;
return $this;
}

/**
* 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
*
* @param Observer $observer
* @return $this
*/
public function addObserver(Observer $observer)
{
$eventName = $observer->getEventName();
if ($eventName) {
$this->getEventByName($eventName)->addObserver($observer);
} else {
$this->getGlobalObservers()->addObserver($observer);
}
return $this;
}

/**
* Dispatch event name with optional data
*
* Will dispatch specific event and will try all global observers
*
* @param string $eventName
* @param array $data
* @return $this
*/
public function dispatch($eventName, array $data = [])
{
$event = $this->getEventByName($eventName);
$event->addData($data)->dispatch();
$this->getGlobalObservers()->dispatch($event);
return $this;
}
}