]> git.mxchange.org Git - friendica.git/commitdiff
Replace Hook with EventDispatcher in Feature class
authorArt4 <art4@wlabs.de>
Wed, 29 Jan 2025 08:37:03 +0000 (08:37 +0000)
committerHypolite Petovan <hypolite@mrpetovan.com>
Tue, 4 Feb 2025 18:22:55 +0000 (13:22 -0500)
src/Content/Feature.php
src/Event/ArrayFilterEvent.php
src/EventSubscriber/HookEventBridge.php
tests/Unit/EventSubscriber/HookEventBridgeTest.php

index 67031a73c36da0406bc90bff4f26adc13a96cfe6..89165e232c5f771f2366d708ee4a7c6425e5fdb1 100644 (file)
@@ -7,7 +7,6 @@
 
 namespace Friendica\Content;
 
-use Friendica\Core\Hook;
 use Friendica\DI;
 use Friendica\Event\ArrayFilterEvent;
 
@@ -95,8 +94,9 @@ class Feature
         */
        public static function get($filtered = true)
        {
-               $l10n   = DI::l10n();
-               $config = DI::config();
+               $l10n            = DI::l10n();
+               $config          = DI::config();
+               $eventDispatcher = DI::eventDispatcher();
 
                $arr = [
                        // General
@@ -170,7 +170,10 @@ class Feature
                        }
                }
 
-               Hook::callAll('get', $arr);
+               $arr = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::FEATURE_GET, $arr)
+               )->getArray();
+
                return $arr;
        }
 }
index 5d084e42d5300c78e9431940ef7b4118eee8d41e..839aa40b754d935851b6001aff24bad62eef16c1 100644 (file)
@@ -22,6 +22,8 @@ final class ArrayFilterEvent extends Event
 
        public const FEATURE_ENABLED = 'friendica.data.feature_enabled';
 
+       public const FEATURE_GET = 'friendica.data.feature_get';
+
        private array $array;
 
        public function __construct(string $name, array $array)
index ede5fe409f6a1185f41634319ad1d08274adc622..f5dde4fbb7ea142f94580806c1b6a5a973671150 100644 (file)
@@ -39,6 +39,7 @@ final class HookEventBridge
                ArrayFilterEvent::APP_MENU        => 'app_menu',
                ArrayFilterEvent::NAV_INFO        => 'nav_info',
                ArrayFilterEvent::FEATURE_ENABLED => 'isEnabled',
+               ArrayFilterEvent::FEATURE_GET     => 'get',
                HtmlFilterEvent::HEAD             => 'head',
                HtmlFilterEvent::FOOTER           => 'footer',
                HtmlFilterEvent::PAGE_HEADER      => 'page_header',
@@ -57,6 +58,7 @@ final class HookEventBridge
                        ArrayFilterEvent::APP_MENU        => 'onArrayFilterEvent',
                        ArrayFilterEvent::NAV_INFO        => 'onArrayFilterEvent',
                        ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent',
+                       ArrayFilterEvent::FEATURE_GET     => 'onArrayFilterEvent',
                        HtmlFilterEvent::HEAD             => 'onHtmlFilterEvent',
                        HtmlFilterEvent::FOOTER           => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_HEADER      => 'onHtmlFilterEvent',
index df138f45773923966ed9a445f132bd6fbe8064a9..07bfa812294272d73381c9d382685605a3f0fc9f 100644 (file)
@@ -27,6 +27,7 @@ class HookEventBridgeTest extends TestCase
                        ArrayFilterEvent::APP_MENU        => 'onArrayFilterEvent',
                        ArrayFilterEvent::NAV_INFO        => 'onArrayFilterEvent',
                        ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent',
+                       ArrayFilterEvent::FEATURE_GET     => 'onArrayFilterEvent',
                        HtmlFilterEvent::HEAD             => 'onHtmlFilterEvent',
                        HtmlFilterEvent::FOOTER           => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_HEADER      => 'onHtmlFilterEvent',
@@ -117,6 +118,7 @@ class HookEventBridgeTest extends TestCase
                        [ArrayFilterEvent::APP_MENU, 'app_menu'],
                        [ArrayFilterEvent::NAV_INFO, 'nav_info'],
                        [ArrayFilterEvent::FEATURE_ENABLED, 'isEnabled'],
+                       [ArrayFilterEvent::FEATURE_GET, 'get'],
                ];
        }