123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- /**
- * Event object and dispatcher
- *
- * @author Magento Core Team <core@magentocommerce.com>
- */
- namespace Magento\Framework;
- /**
- * @api
- * @since 100.0.2
- */
- class Event extends \Magento\Framework\DataObject
- {
- /**
- * Observers collection
- *
- * @var \Magento\Framework\Event\Observer\Collection
- */
- protected $_observers;
- /**
- * Constructor
- *
- * Initializes observers collection
- *
- * @param array $data
- */
- public function __construct(array $data = [])
- {
- $this->_observers = new \Magento\Framework\Event\Observer\Collection();
- parent::__construct($data);
- }
- /**
- * Returns all the registered observers for the event
- *
- * @return \Magento\Framework\Event\Observer\Collection
- */
- public function getObservers()
- {
- return $this->_observers;
- }
- /**
- * Register an observer for the event
- *
- * @param \Magento\Framework\Event\Observer $observer
- * @return $this
- */
- public function addObserver(\Magento\Framework\Event\Observer $observer)
- {
- $this->getObservers()->addObserver($observer);
- return $this;
- }
- /**
- * Removes an observer by its name
- *
- * @param string $observerName
- * @return $this
- */
- public function removeObserverByName($observerName)
- {
- $this->getObservers()->removeObserverByName($observerName);
- return $this;
- }
- /**
- * Dispatches the event to registered observers
- *
- * @return $this
- */
- public function dispatch()
- {
- $this->getObservers()->dispatch($this);
- return $this;
- }
- /**
- * Retrieve event name
- *
- * @return string
- */
- public function getName()
- {
- return $this->_data['name'] ?? null;
- }
- /**
- * @param string $data
- * @return $this
- */
- public function setName($data)
- {
- $this->_data['name'] = $data;
- return $this;
- }
- /**
- * @return mixed
- */
- public function getBlock()
- {
- return $this->_getData('block');
- }
- }
|