public function load(mixed
$resource, string
$type = null
): RouteCollection
{ if (!
preg_match('/^[^\:]+(?:::(?:[^\:]+))?$/',
$resource)) { throw new \
InvalidArgumentException(sprintf('Invalid resource "%s" passed to the %s route loader: use the format "object_id::method" or "object_id" if your object class has an "__invoke" method.',
$resource, \
is_string($type) ? '"'.
$type.'"' : 'object'
));
} $parts =
explode('::',
$resource);
$method =
$parts[1
] ?? '__invoke';
$loaderObject =
$this->
getObject($parts[0
]);
if (!\
is_object($loaderObject)) { throw new \
TypeError(sprintf('"%s:getObject()" must return an object: "%s" returned.',
static::
class,
get_debug_type($loaderObject)));
} if (!\
is_callable([$loaderObject,
$method])) { throw new \
BadMethodCallException(sprintf('Method "%s" not found on "%s" when importing routing resource "%s".',
$method,
get_debug_type($loaderObject),
$resource));
} $routeCollection =
$loaderObject->
$method($this,
$this->env
);