1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-23 08:34:56 +00:00
Arsse/lib/Conf.php

74 lines
2.4 KiB
PHP
Raw Normal View History

2016-09-27 13:00:02 +00:00
<?php
declare(strict_types=1);
2017-03-28 04:12:12 +00:00
namespace JKingWeb\Arsse;
2016-09-27 13:00:02 +00:00
class Conf {
2017-02-16 20:29:42 +00:00
public $lang = "en";
public $dbDriver = Db\SQLite3\Driver::class;
2017-03-10 02:39:42 +00:00
public $dbSchemaBase = BASE.'sql';
2017-03-28 04:12:12 +00:00
public $dbSQLite3File = BASE."arsse.db";
2017-02-16 20:29:42 +00:00
public $dbSQLite3Key = "";
public $dbSQLite3AutoUpd = true;
public $dbPostgreSQLHost = "localhost";
2017-03-28 04:12:12 +00:00
public $dbPostgreSQLUser = "arsse";
2017-02-16 20:29:42 +00:00
public $dbPostgreSQLPass = "";
public $dbPostgreSQLPort = 5432;
2017-03-28 04:12:12 +00:00
public $dbPostgreSQLDb = "arsse";
2017-02-16 20:29:42 +00:00
public $dbPostgreSQLSchema = "";
public $dbPostgreSQLAutoUpd = false;
public $dbMySQLHost = "localhost";
2017-03-28 04:12:12 +00:00
public $dbMySQLUser = "arsse";
2017-02-16 20:29:42 +00:00
public $dbMySQLPass = "";
public $dbMySQLPort = 3306;
2017-03-28 04:12:12 +00:00
public $dbMySQLDb = "arsse";
2017-02-16 20:29:42 +00:00
public $dbMySQLAutoUpd = false;
public $userDriver = User\Internal\Driver::class;
2017-02-16 20:29:42 +00:00
public $userAuthPreferHTTP = false;
public $userComposeNames = true;
public $userTempPasswordLength = 20;
2016-09-27 13:00:02 +00:00
public $userAgentString;
2016-09-27 13:00:02 +00:00
2017-02-16 20:29:42 +00:00
public function __construct(string $import_file = "") {
$this->userAgentString = sprintf('Arsse/%s (%s %s; %s; https://code.jkingweb.ca/jking/arsse) PicoFeed (https://github.com/fguillot/picoFeed)',
VERSION, // Arsse version
php_uname('s'), // OS
php_uname('r'), // OS version
php_uname('m') // platform architecture
);
2017-02-16 20:29:42 +00:00
if($import_file != "") $this->importFile($import_file);
}
2017-02-16 20:29:42 +00:00
public function importFile(string $file): self {
if(!file_exists($file)) throw new Conf\Exception("fileMissing", $file);
if(!is_readable($file)) throw new Conf\Exception("fileUnreadable", $file);
try {
ob_start();
$arr = (@include $file);
} catch(\Throwable $e) {
$arr = null;
} finally {
ob_end_clean();
}
if(!is_array($arr)) throw new Conf\Exception("fileCorrupt", $file);
return $this->import($arr);
}
2016-09-27 13:00:02 +00:00
2017-02-16 20:29:42 +00:00
public function import(array $arr): self {
foreach($arr as $key => $value) {
$this->$key = $value;
}
return $this;
}
2016-09-27 13:00:02 +00:00
2017-02-16 20:29:42 +00:00
public function export(string $file = ""): string {
// TODO
}
public function __toString(): string {
return $this->export();
}
2016-09-27 13:00:02 +00:00
}