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);