diff options
| author | 2022-01-01 13:54:36 +0100 | |
|---|---|---|
| committer | 2022-01-01 13:54:36 +0100 | |
| commit | a791388ce4b7b5c03be109418336d41992d93b88 (patch) | |
| tree | e4d0b697887203c1cbd2f19345f52c711354c299 /lib/Minz/ExtensionManager.php | |
| parent | 3f6aa42b817145a3b00f4d615f87728b55c4413a (diff) | |
Avoid func_get_args (#4108)
Use variadic syntax instead https://php.net/manual/functions.arguments#functions.variable-arg-list
And avoid dynamic functions names when possible to more easily identify calls and unused functions.
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4103
Diffstat (limited to 'lib/Minz/ExtensionManager.php')
| -rw-r--r-- | lib/Minz/ExtensionManager.php | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/Minz/ExtensionManager.php b/lib/Minz/ExtensionManager.php index 0139c326f..576064b35 100644 --- a/lib/Minz/ExtensionManager.php +++ b/lib/Minz/ExtensionManager.php @@ -295,23 +295,25 @@ class Minz_ExtensionManager { * array keys. * * @param string $hook_name the hook to call. - * @param additional parameters (for signature, please see self::$hook_list). + * @param array<mixed> $args additional parameters (for signature, please see self::$hook_list). * @return mixed final result of the called hook. */ - public static function callHook($hook_name) { + public static function callHook($hook_name, ...$args) { if (!isset(self::$hook_list[$hook_name])) { return; } $signature = self::$hook_list[$hook_name]['signature']; - $args = func_get_args(); - if ($signature === 'PassArguments') { - array_shift($args); + if ($signature === 'OneToOne') { + return self::callOneToOne($hook_name, $args[0] ?? null); + } elseif ($signature === 'PassArguments') { foreach (self::$hook_list[$hook_name]['list'] as $function) { - call_user_func_array($function, $args); + call_user_func($function, ...$args); } - } else { - return call_user_func_array('self::call' . $signature, $args); + } elseif ($signature === 'NoneToString') { + return self::callNoneToString($hook_name); + } elseif ($signature === 'NoneToNone') { + return self::callNoneToNone($hook_name); } } |
