mercureact/src/Configuration.php

75 lines
1.6 KiB
PHP

<?php
namespace NoccyLabs\Mercureact;
use Symfony\Component\Yaml\Yaml;
class Configuration
{
private ?string $publicUrl = null;
private ?string $jwtSecret = null;
private bool $allowAnonymousSubscribe = false;
public static function createDefault(): Configuration
{
return new Configuration();
}
public static function fromFile(string $file): Configuration
{
$config = new Configuration();
$yaml = Yaml::parseFile($file);
if (isset($yaml['security'])) {
$security = $yaml['security'];
if (isset($security['jwt_secret']))
$config->setJwtSecret($security['jwt_secret']);
}
if (isset($yaml['subscribe'])) {
$subscribe = $yaml['subscribe'];
if (isset($subscribe['allow_anonymous']))
$config->setAllowAnonymousSubscribe(boolval($subscribe['allow_anonymous']));
}
return $config;
}
public function setPublicUrl(string $publicUrl): self
{
$this->publicUrl = $publicUrl;
return $this;
}
public function getPublicUrl(): ?string
{
return $this->publicUrl;
}
public function setJwtSecret(string $secret): self
{
$this->jwtSecret = $secret;
return $this;
}
public function getJwtSecret(): ?string
{
return $this->jwtSecret;
}
function getAllowAnonymousSubscribe():bool
{
return $this->allowAnonymousSubscribe;
}
function setAllowAnonymousSubscribe(bool $allowAnonymousSubscribe): self
{
$this->allowAnonymousSubscribe = $allowAnonymousSubscribe;
return $this;
}
}