![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/Notification/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Notification; /** * List of registered system notifiers * @api * * @since 100.0.2 */ class NotifierList { /** * Object manager * * @var \Magento\Framework\ObjectManagerInterface */ protected $objectManager; /** * List of notifiers * * @var NotifierInterface[]|string[] */ protected $notifiers; /** * Whether the list of notifiers is verified (all notifiers should implement NotifierInterface interface) * * @var bool */ protected $isNotifiersVerified; /** * @param \Magento\Framework\ObjectManagerInterface $objectManager * @param NotifierInterface[]|string[] $notifiers */ public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager, $notifiers = []) { $this->objectManager = $objectManager; $this->notifiers = $notifiers; $this->isNotifiersVerified = false; } /** * Returning list of notifiers. * * @return NotifierInterface[] * @throws \InvalidArgumentException */ public function asArray() { if (!$this->isNotifiersVerified) { $hasErrors = false; foreach ($this->notifiers as $classIndex => $class) { $notifier = $this->objectManager->get($class); if ($notifier instanceof NotifierInterface) { $this->notifiers[$classIndex] = $notifier; } else { $hasErrors = true; unset($this->notifiers[$classIndex]); } } $this->isNotifiersVerified = true; if ($hasErrors) { throw new \InvalidArgumentException('All notifiers should implement NotifierInterface'); } } return $this->notifiers; } }