<?php
namespace Misuzu;
use Syokuhou\IConfig;
class SiteInfo {
private bool $loaded = false;
private array $props;
public function __construct(
private IConfig $config
) {}
public function load(): void {
if($this->loaded)
return;
$this->loaded = true;
$this->props = $this->config->getValues([
['name:s', 'Misuzu'],
'desc:s',
'url:s',
'ext_logo:s',
]);
}
public function getName(): string {
$this->load();
return $this->props['name'];
public function getDescription(): string {
return $this->props['desc'];
public function hasURL(): bool {
return $this->getURL() !== '';
public function getURL(): string {
return rtrim($this->props['url'], '/');
public function hasExternalLogo(): bool {
return $this->getExternalLogo() !== '';
public function getExternalLogo(): string {
return $this->props['ext_logo'];