public function getResource($resource)
{
if ($this->cache->has($resource)) {
return $this->cache->get($resource);
}
if (!$this->resources->has($resource)) {
throw new ResourceNotImplemented($resource);
}
$params = $this->resources->get($resource);
$instance = $params['instance'];
if (is_null($instance)) {
$class = $params['class'];
$instance = new $class($this);
}
return $this->cache[$resource] = $instance;
}