1
0
mirror of https://github.com/vichan-devel/vichan.git synced 2025-02-20 20:51:50 +01:00

Context: simplify lazy initialization

This commit is contained in:
Zankaria 2024-04-09 11:43:46 +02:00
parent f93dd1fae5
commit a83bcf14a4

View File

@ -52,21 +52,22 @@ class Context {
private ?HttpDriver $http;
private function lazyGet(mixed &$field_ref, string $dependency_name): mixed {
if (is_null($field_ref)) {
$field_ref = [$this->factory, "build{$dependency_name}"]();
}
return $field_ref;
}
public function __construct(DependencyFactory $factory) {
$this->factory = $factory;
}
public function getLog(): Log {
if (is_null($this->log)) {
$this->log = $this->factory->buildLogDriver();
}
return $this->log;
return $this->lazyGet($this->log, 'logDriver');
}
public function getHttpDriver(): HttpDriver {
if (is_null($this->http)) {
$this->http = $this->factory->buildHttpDriver();
}
return $this->http;
return $this->lazyGet($this->http, 'httpDriver');
}
}