67 lines
1.6 KiB
PHP
67 lines
1.6 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\MiningChecker\Infrastructure;
|
|
|
|
final class ModuleConfig
|
|
{
|
|
private array $config;
|
|
|
|
public function __construct(array $config)
|
|
{
|
|
$this->config = $config;
|
|
}
|
|
|
|
public static function load(string $moduleBasePath): self
|
|
{
|
|
$config = require $moduleBasePath . '/config/module.php';
|
|
return new self(is_array($config) ? $config : []);
|
|
}
|
|
|
|
public function defaultProjectKey(): string
|
|
{
|
|
return (string) ($this->config['default_project_key'] ?? 'doge-main');
|
|
}
|
|
|
|
public function useProjectDatabase(): bool
|
|
{
|
|
return (bool) ($this->config['use_project_database'] ?? true);
|
|
}
|
|
|
|
public function tablePrefix(): string
|
|
{
|
|
return (string) ($this->config['table_prefix'] ?? 'miningcheck_');
|
|
}
|
|
|
|
public function uploadsDir(): string
|
|
{
|
|
return (string) ($this->config['uploads_dir'] ?? sys_get_temp_dir());
|
|
}
|
|
|
|
public function uploadsPublicPrefix(): string
|
|
{
|
|
return rtrim((string) ($this->config['uploads_public_prefix'] ?? '/uploads'), '/');
|
|
}
|
|
|
|
public function ocr(): array
|
|
{
|
|
return (array) ($this->config['ocr'] ?? []);
|
|
}
|
|
|
|
public function fx(): array
|
|
{
|
|
return (array) ($this->config['fx'] ?? []);
|
|
}
|
|
|
|
public function debug(): array
|
|
{
|
|
return (array) ($this->config['debug'] ?? []);
|
|
}
|
|
|
|
public function debugDir(): string
|
|
{
|
|
$debug = $this->debug();
|
|
return (string) ($debug['dir'] ?? (dirname($this->uploadsDir()) . '/debug'));
|
|
}
|
|
}
|