mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 09:05:27 +00:00
init config model
This commit is contained in:
parent
cba3676d73
commit
789db97319
6 changed files with 247 additions and 230 deletions
|
|
@ -6,6 +6,7 @@ namespace Yggverse\Yoda\Entity;
|
|||
|
||||
class App
|
||||
{
|
||||
public \Yggverse\Yoda\Model\Config $config;
|
||||
public \Yggverse\Yoda\Model\Database $database;
|
||||
|
||||
public \Yggverse\Yoda\Entity\Tab\History $history;
|
||||
|
|
@ -14,12 +15,10 @@ class App
|
|||
public \GtkHeaderBar $header;
|
||||
public \GtkNotebook $tabs;
|
||||
|
||||
public object $config;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// Init config
|
||||
$this->config = \Yggverse\Yoda\Model\File::getConfig()->app; // @TODO
|
||||
$this->config = new \Yggverse\Yoda\Model\Config;
|
||||
|
||||
// Init database
|
||||
$this->database = new \Yggverse\Yoda\Model\Database(
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ class History
|
|||
// Init app
|
||||
$this->app = $app;
|
||||
|
||||
// Init config
|
||||
$this->config = \Yggverse\Yoda\Model\File::getConfig()->app->tab->history;
|
||||
// Init config namespace
|
||||
$this->config = $app->config->tab->history;
|
||||
|
||||
// Cleanup expired history
|
||||
if ($this->config->clean->timeout)
|
||||
|
|
|
|||
|
|
@ -43,8 +43,8 @@ class Page
|
|||
// Init app
|
||||
$this->app = $app;
|
||||
|
||||
// Init config
|
||||
$this->config = \Yggverse\Yoda\Model\File::getConfig()->app->tab->page;
|
||||
// Init config namespace
|
||||
$this->config = $app->config->tab->page;
|
||||
|
||||
// Init DNS memory
|
||||
$this->dns = new \Yggverse\Yoda\Model\Memory;
|
||||
|
|
|
|||
45
src/Model/Config.php
Normal file
45
src/Model/Config.php
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Yggverse\Yoda\Model;
|
||||
|
||||
class Config
|
||||
{
|
||||
public function __construct(
|
||||
?string $filename = null
|
||||
) {
|
||||
if (empty($filename))
|
||||
{
|
||||
$filename = __DIR__ .
|
||||
DIRECTORY_SEPARATOR . '..' .
|
||||
DIRECTORY_SEPARATOR . '..' .
|
||||
DIRECTORY_SEPARATOR . 'config.json';
|
||||
}
|
||||
|
||||
if (!file_exists($filename))
|
||||
{
|
||||
throw new \Exception; // @TODO
|
||||
}
|
||||
|
||||
if (!is_readable($filename))
|
||||
{
|
||||
throw new \Exception; // @TODO
|
||||
}
|
||||
|
||||
if (!$data = file_get_contents($filename))
|
||||
{
|
||||
throw new \Exception; // @TODO
|
||||
}
|
||||
|
||||
if (!$config = @json_decode($data))
|
||||
{
|
||||
throw new \Exception; // @TODO
|
||||
}
|
||||
|
||||
foreach ($config as $key => $value)
|
||||
{
|
||||
$this->{$key} = $value; // @TODO
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,30 +6,6 @@ namespace Yggverse\Yoda\Model;
|
|||
|
||||
class File
|
||||
{
|
||||
public static function getConfig(): object
|
||||
{
|
||||
$filename = __DIR__ .
|
||||
DIRECTORY_SEPARATOR . '..' .
|
||||
DIRECTORY_SEPARATOR . '..' .
|
||||
DIRECTORY_SEPARATOR . 'config.json';
|
||||
|
||||
if (file_exists($filename) && is_readable($filename))
|
||||
{
|
||||
$result = json_decode(
|
||||
file_get_contents(
|
||||
$filename
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if (empty($result))
|
||||
{
|
||||
throw new \Exception(); // @TODO
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function getTheme(string $name): string
|
||||
{
|
||||
$filename = __DIR__ .
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue