public function getService($name)
{
if (!array_key_exists($name, $this->services)) {
if (isset($this->service_config[$name])) {
$class_name = $this->service_config[$name]['service_class'];
$service = $class_name::load();
if (!$service instanceof Service) {
throw new \Exception("Invalid service class: '{$class_name}'");
}
$this->services[$name] = $service;
} else {
$this->services[$name] = null;
}
}
return $this->services[$name];
}