public static function __callStatic($name, $args)
{
foreach (self::$namespaces as $namespace) {
$class = $namespace . ucfirst($name);
if (class_exists($class)) {
switch (count($args)) {
case 0:
return new $class();
case 1:
return new $class($args[0]);
default:
return (new \ReflectionClass($class))->newInstanceArgs($args);
}
}
}
throw new RuntimeException("The middleware {$name} does not exits");
}