From 5b8ba9335ddc489b69eac314380f34654bc367fd Mon Sep 17 00:00:00 2001 From: ProklUng Date: Fri, 21 May 2021 08:42:56 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../classes/Facades/EventDispatcherFacade.php | 22 --- local/classes/Util/SymfonyEvents/Events.php | 144 ------------------ local/classes/Util/SymfonyEvents/Init.php | 22 --- local/configs/events.yaml | 64 -------- local/configs/services.yaml | 3 - local/configs/services/facades.yaml | 1 - 6 files changed, 256 deletions(-) delete mode 100644 local/classes/Facades/EventDispatcherFacade.php delete mode 100644 local/classes/Util/SymfonyEvents/Events.php delete mode 100644 local/classes/Util/SymfonyEvents/Init.php delete mode 100644 local/configs/events.yaml diff --git a/local/classes/Facades/EventDispatcherFacade.php b/local/classes/Facades/EventDispatcherFacade.php deleted file mode 100644 index c657277..0000000 --- a/local/classes/Facades/EventDispatcherFacade.php +++ /dev/null @@ -1,22 +0,0 @@ -each(function ($arListenerData) { - /** @var string $sMethodListener Метод слушателя. */ - $sMethodListener = !empty($arListenerData['method']) ? $arListenerData['method'] : 'action'; - /** Приоритет. */ - $iPriority = !empty($arListenerData['priority']) ? (int)$arListenerData['priority'] : 0; - - $isStaticMethod = $this->isStaticMethod($arListenerData['handler'], $sMethodListener); - - $handler = [$arListenerData['handler'], $sMethodListener]; - // Не статический метод. - if (!$isStaticMethod) { - $handler = [new $arListenerData['handler'], $sMethodListener]; - } - - self::$obDispatcher->addListener( - $arListenerData['event'], - $handler, - $iPriority - ); - }); - - return self::$obDispatcher; - } - - /** - * Запустить событие. - * - * @param string $sEventName Событие. - * @param mixed $obParams Объект-параметры. - * - * @return mixed|object|null - */ - public function dispatch(string $sEventName, $obParams = null) - { - if (!$sEventName) { - return null; - } - - if ($obParams === null) { - $obParams = new stdClass(); - } - - return self::$obDispatcher->dispatch($obParams, $sEventName); - } - - /** - * Декоратор добавления слушателя. - * - * @param string $eventName Название события. - * @param mixed $listener Слушатель. - * @param integer $priority Приоритет. - * - * @return void - */ - public function addListener(string $eventName, $listener, int $priority = 0): void - { - self::$obDispatcher->addListener($eventName, $listener, $priority); - } - - /** - * Декоратор удаления слушателя события. - * - * @param string $eventName Название события. - * @param mixed $listener Слушатель. - * - * @return void - */ - public function removeListener(string $eventName, $listener) : void - { - self::$obDispatcher->removeListener($eventName, $listener); - } - - /** - * Это статический метод? - * - * @param string $class Класс. - * @param string $sMethod Метод. - * - * @return boolean - */ - private function isStaticMethod(string $class, string $sMethod) : bool - { - try { - $reflection = new ReflectionMethod($class, $sMethod); - } catch (ReflectionException $e) { - die('Слушатель события '.$class. ' не существует.'); - } - - return $reflection->isStatic(); - } -} diff --git a/local/classes/Util/SymfonyEvents/Init.php b/local/classes/Util/SymfonyEvents/Init.php deleted file mode 100644 index df175f1..0000000 --- a/local/classes/Util/SymfonyEvents/Init.php +++ /dev/null @@ -1,22 +0,0 @@ -applyListeners(); - } -} diff --git a/local/configs/events.yaml b/local/configs/events.yaml deleted file mode 100644 index d7658dd..0000000 --- a/local/configs/events.yaml +++ /dev/null @@ -1,64 +0,0 @@ -data: - # Вызывается в result_modifier.php компонента (где будет указано). - on.result.modifier.component.last.modified: - event: 'on.result.modifier.component' - # Класс обработчик. - handler: '\Prokl\BitrixOrdinaryToolsBundle\Services\SymfonyEvents\Handlers\OnResultModifierSections' - # Метод слушателя. Если не указано, то "action". - method: 'action' - # Приоритет. По умолчанию - 0. - priority: 100 - - # Вызывается в component_epilog.php (где будет указано) - on.component.epilog.last.modified: - event: 'on.component.epilog' - # Класс обработчик. - handler: '\Prokl\BitrixOrdinaryToolsBundle\Services\SymfonyEvents\Handlers\OnComponentEpilogLastModified' - # Метод слушателя. Если не указано, то "action". - method: 'action' - # Приоритет. По умолчанию - 0. - priority: 100 - - - # Установка title & description на детальных страницах. - set.seo.detail.page: - event: 'on.component.epilog' - # Класс обработчик. - handler: '\Prokl\BitrixOrdinaryToolsBundle\Services\SymfonyEvents\Handlers\Seo\OnDetailSetSeoData' - priority: 200 - - # Канонические ссылки в news.detail. - canonical.detail: - event: 'on.result.modifier.component.detail' - # Класс обработчик. - handler: '\Prokl\BitrixOrdinaryToolsBundle\Services\SymfonyEvents\Handlers\Seo\Canonical' - priority: 100 - - # H1 в news.list. - h1.sections: - event: 'on.result.modifier.component' - # Класс обработчик. - handler: '\Prokl\BitrixOrdinaryToolsBundle\Services\SymfonyEvents\Handlers\Seo\H1' - priority: 250 - - # H1 в news.detail. - h1.detal: - event: 'on.result.modifier.component.detail' - handler: '\Prokl\BitrixOrdinaryToolsBundle\Services\SymfonyEvents\Handlers\Seo\H1Detail' - priority: 350 - - on.component.epilog.section.last.modified: - event: 'on.component.epilog.sections' - # Класс обработчик. - handler: '\Prokl\BitrixOrdinaryToolsBundle\Services\SymfonyEvents\Handlers\OnComponentEpilogLastModified' - # Метод слушателя. Если не указано, то "action". - method: 'action' - # Приоритет. По умолчанию - 0. - priority: 100 - - # Установка title & description на разводных страницах. - set.seo.section.page: - event: 'on.component.epilog.sections' - # Класс обработчик. - handler: '\Prokl\BitrixOrdinaryToolsBundle\Services\SymfonyEvents\Handlers\Seo\OnSectionSetSeoData' - priority: 200 diff --git a/local/configs/services.yaml b/local/configs/services.yaml index 086e8b8..cc35736 100644 --- a/local/configs/services.yaml +++ b/local/configs/services.yaml @@ -40,6 +40,3 @@ services: # Опции приложения. app.options: class: Local\Services\Kernel - - event.dispatcher: - class: Local\Util\SymfonyEvents\Events diff --git a/local/configs/services/facades.yaml b/local/configs/services/facades.yaml index c955e17..d6adfbe 100644 --- a/local/configs/services/facades.yaml +++ b/local/configs/services/facades.yaml @@ -9,7 +9,6 @@ services: autoconfigure: true public: true - Local\Facades\EventDispatcherFacade: ~ Local\Facades\FilesystemFacade: ~ Local\Facades\KernelFacade: ~