simplify Loader@newInstance

loader-rework
fadrian06 3 days ago
parent 5a83743cc7
commit 09e222c0fa

@ -113,19 +113,16 @@ class Loader
/** /**
* Gets a new instance of a class. * Gets a new instance of a class.
* *
* @param class-string<T>|Closure(): class-string<T> $class Class name or callback function to instantiate class * @template T of object = object
* @param array<int, string> $params Class initialization parameters * @param class-string<T>|callable(mixed ...$constructorArguments): T $class Class factory.
* * @param string[] $params Class constructor arguments.
* @template T of object * @return T
* * @throws Throwable
* @throws Exception
*
* @return T Class instance
*/ */
public function newInstance($class, array $params = []) public function newInstance($class, array $params = []): object
{ {
if (\is_callable($class)) { if (is_callable($class)) {
return \call_user_func_array($class, $params); return $class(...$params);
} }
return new $class(...$params); return new $class(...$params);

Loading…
Cancel
Save