/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Event/Invoker/InvokerDefault.php
106 строк
3 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Default event invoker * * Copyright 2014 Adobe * All Rights Reserved. */ namespace Magento\Framework\Event\Invoker; use Magento\Framework\Event\Observer; use Psr\Log\LoggerInterface; use Magento\Framework\App\State; /** * Default Invoker. */ class InvokerDefault implements \Magento\Framework\Event\InvokerInterface { /** * Observer model factory * * @var \Magento\Framework\Event\ObserverFactory */ protected $_observerFactory; /** * Application state * * @var State */ protected $_appState; /** * @var LoggerInterface */ private $logger; /** * @param \Magento\Framework\Event\ObserverFactory $observerFactory * @param State $appState * @param LoggerInterface $logger */ public function __construct( \Magento\Framework\Event\ObserverFactory $observerFactory, State $appState, ?LoggerInterface $logger = null ) { $this->_observerFactory = $observerFactory; $this->_appState = $appState; $this->logger = $logger ?: \Magento\Framework\App\ObjectManager::getInstance() ->get(LoggerInterface::class); } /** * Dispatch event * * @param array $configuration * @param Observer $observer * @return void */ public function dispatch(array $configuration, Observer $observer) { /** Check whether event observer is disabled */ if (isset($configuration['disabled']) && true === $configuration['disabled']) { return; } if (isset($configuration['shared']) && false === $configuration['shared']) { $object = $this->_observerFactory->create($configuration['instance']); } else { $object = $this->_observerFactory->get($configuration['instance']); } $this->_callObserverMethod($object, $observer); } /** * Execute Observer. * * @param \Magento\Framework\Event\ObserverInterface $object * @param Observer $observer * @return $this * @throws \LogicException */ protected function _callObserverMethod($object, $observer) { if ($object instanceof \Magento\Framework\Event\ObserverInterface) { $object->execute($observer); } elseif ($this->_appState->getMode() == State::MODE_DEVELOPER) { throw new \LogicException( sprintf( 'Observer "%s" must implement interface "%s"', get_class($object), \Magento\Framework\Event\ObserverInterface::class ) ); } else { $this->logger->warning(sprintf( 'Observer "%s" must implement interface "%s"', get_class($object), \Magento\Framework\Event\ObserverInterface::class )); } return $this; } }