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.
*
* @param class-string<T>|Closure(): class-string<T> $class Class name or callback function to instantiate class
* @param array<int, string> $params Class initialization parameters
*
* @template T of object
*
* @throws Exception
*
* @return T Class instance
* @template T of object = object
* @param class-string<T>|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);

Loading…
Cancel
Save