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:
parent
f93dd1fae5
commit
a83bcf14a4
@ -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');
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user