/** * Loads a resource. * * @param mixed $resource A resource */ public function load($resource) { $loader = $this->resolver->resolve($resource); if (false === $loader) { throw new \InvalidArgumentException(sprintf('Unable to load the "%s" container resource.', is_string($resource) ? $resource : (is_object($resource) ? get_class($resource) : 'RESOURCE'))); } return $loader->load($resource); }
/** * Router constructor. * * @param LoaderResolverInterface $resolver * @param array $resources * @param MethodCollection|null $collection * * @param array $context */ public function __construct(LoaderResolverInterface $resolver, array $resources = [], MethodCollection $collection = null, array $context = []) { $this->collection = $collection; if (null === $this->collection) { $this->collection = new MethodCollection(); } foreach ($resources as $resource) { $loader = $resolver->resolve($resource); if (false === $loader) { throw new \RuntimeException(sprintf('Could not resolve loader for resource "%s"', $resource)); } $this->collection->addCollection($loader->load($resource)); } foreach ($context as $item) { $this->collection->addContext($item); } }