From 09e222c0fa9c00cc230bc278d4a6523683299572 Mon Sep 17 00:00:00 2001 From: fadrian06 Date: Sun, 23 Aug 2026 16:44:46 -0400 Subject: [PATCH] simplify Loader@newInstance --- flight/core/Loader.php | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/flight/core/Loader.php b/flight/core/Loader.php index f85e7a7..9499755 100644 --- a/flight/core/Loader.php +++ b/flight/core/Loader.php @@ -113,19 +113,16 @@ class Loader /** * Gets a new instance of a class. * - * @param class-string|Closure(): class-string $class Class name or callback function to instantiate class - * @param array $params Class initialization parameters - * - * @template T of object - * - * @throws Exception - * - * @return T Class instance + * @template T of object = object + * @param class-string|callable(mixed ...$constructorArguments): T $class Class factory. + * @param string[] $params Class constructor arguments. + * @return T + * @throws Throwable */ - public function newInstance($class, array $params = []) + public function newInstance($class, array $params = []): object { - if (\is_callable($class)) { - return \call_user_func_array($class, $params); + if (is_callable($class)) { + return $class(...$params); } return new $class(...$params);