Replace Hook with EventDispatcher in Feature class

This commit is contained in:
Art4 2025-01-29 08:37:03 +00:00 committed by Hypolite Petovan
parent 673fc71c21
commit d9a2d676d2
4 changed files with 13 additions and 4 deletions

View file

@ -7,7 +7,6 @@
namespace Friendica\Content; namespace Friendica\Content;
use Friendica\Core\Hook;
use Friendica\DI; use Friendica\DI;
use Friendica\Event\ArrayFilterEvent; use Friendica\Event\ArrayFilterEvent;
@ -95,8 +94,9 @@ class Feature
*/ */
public static function get($filtered = true) public static function get($filtered = true)
{ {
$l10n = DI::l10n(); $l10n = DI::l10n();
$config = DI::config(); $config = DI::config();
$eventDispatcher = DI::eventDispatcher();
$arr = [ $arr = [
// General // General
@ -170,7 +170,10 @@ class Feature
} }
} }
Hook::callAll('get', $arr); $arr = $eventDispatcher->dispatch(
new ArrayFilterEvent(ArrayFilterEvent::FEATURE_GET, $arr)
)->getArray();
return $arr; return $arr;
} }
} }

View file

@ -22,6 +22,8 @@ final class ArrayFilterEvent extends Event
public const FEATURE_ENABLED = 'friendica.data.feature_enabled'; public const FEATURE_ENABLED = 'friendica.data.feature_enabled';
public const FEATURE_GET = 'friendica.data.feature_get';
private array $array; private array $array;
public function __construct(string $name, array $array) public function __construct(string $name, array $array)

View file

@ -39,6 +39,7 @@ final class HookEventBridge
ArrayFilterEvent::APP_MENU => 'app_menu', ArrayFilterEvent::APP_MENU => 'app_menu',
ArrayFilterEvent::NAV_INFO => 'nav_info', ArrayFilterEvent::NAV_INFO => 'nav_info',
ArrayFilterEvent::FEATURE_ENABLED => 'isEnabled', ArrayFilterEvent::FEATURE_ENABLED => 'isEnabled',
ArrayFilterEvent::FEATURE_GET => 'get',
HtmlFilterEvent::HEAD => 'head', HtmlFilterEvent::HEAD => 'head',
HtmlFilterEvent::FOOTER => 'footer', HtmlFilterEvent::FOOTER => 'footer',
HtmlFilterEvent::PAGE_HEADER => 'page_header', HtmlFilterEvent::PAGE_HEADER => 'page_header',
@ -57,6 +58,7 @@ final class HookEventBridge
ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent', ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent',
ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent', ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent',
ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent', ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent',
ArrayFilterEvent::FEATURE_GET => 'onArrayFilterEvent',
HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent',
HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent',

View file

@ -27,6 +27,7 @@ class HookEventBridgeTest extends TestCase
ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent', ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent',
ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent', ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent',
ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent', ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent',
ArrayFilterEvent::FEATURE_GET => 'onArrayFilterEvent',
HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent',
HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent',
@ -117,6 +118,7 @@ class HookEventBridgeTest extends TestCase
[ArrayFilterEvent::APP_MENU, 'app_menu'], [ArrayFilterEvent::APP_MENU, 'app_menu'],
[ArrayFilterEvent::NAV_INFO, 'nav_info'], [ArrayFilterEvent::NAV_INFO, 'nav_info'],
[ArrayFilterEvent::FEATURE_ENABLED, 'isEnabled'], [ArrayFilterEvent::FEATURE_ENABLED, 'isEnabled'],
[ArrayFilterEvent::FEATURE_GET, 'get'],
]; ];
} }