Use sharp config format.

This commit is contained in:
flash 2023-10-21 14:21:02 +00:00
parent 227754dbff
commit e859c5d839
4 changed files with 18 additions and 17 deletions

1
.gitignore vendored
View file

@ -2,6 +2,7 @@
[Dd]esktop.ini [Dd]esktop.ini
.DS_Store .DS_Store
/.debug /.debug
/config/config.cfg
/config/config.ini /config/config.ini
/public/robots.txt /public/robots.txt
/vendor /vendor

View file

@ -4,6 +4,7 @@ namespace Awaki;
use Index\Environment; use Index\Environment;
use Index\Data\ConnectionFailedException; use Index\Data\ConnectionFailedException;
use Index\Data\DbTools; use Index\Data\DbTools;
use Syokuhou\SharpConfig;
define('AWK_STARTUP', microtime(true)); define('AWK_STARTUP', microtime(true));
define('AWK_ROOT', __DIR__); define('AWK_ROOT', __DIR__);
@ -17,15 +18,13 @@ require_once AWK_ROOT . '/vendor/autoload.php';
Environment::setDebug(AWK_DEBUG); Environment::setDebug(AWK_DEBUG);
$config = parse_ini_file(AWK_DIR_CFG . '/config.ini', true); $config = SharpConfig::fromFile(AWK_DIR_CFG . '/config.cfg');
if($config === false)
die('Config sux.');
try { try {
$db = DbTools::create($config['dsn']); $db = DbTools::create($config->getString('dsn'));
} catch(ConnectionFailedException $ex) { } catch(ConnectionFailedException $ex) {
echo '<h3>Unable to connect to database</h3>'; echo '<h3>Unable to connect to database</h3>';
die($ex->getMessage()); die($ex->getMessage());
} }
$awk = new AwakiContext($db, $config['urls']); $awk = new AwakiContext($db, $config->scopeTo('urls'));

View file

@ -8,6 +8,7 @@ use Index\Data\Migration\FsDbMigrationRepo;
use Index\Http\HttpFx; use Index\Http\HttpFx;
use Index\Http\HttpRequest; use Index\Http\HttpRequest;
use Index\Routing\IRouter; use Index\Routing\IRouter;
use Syokuhou\IConfig;
// theme colours: #99403d, #592824, #d18c83 // theme colours: #99403d, #592824, #d18c83
// totally didn't just eyedrop musujime // totally didn't just eyedrop musujime
@ -17,9 +18,9 @@ class AwakiContext {
private IDbConnection $dbConn; private IDbConnection $dbConn;
private HttpFx $router; private HttpFx $router;
private array $urls; private IConfig $urls;
public function __construct(IDbConnection $dbConn, array $urls) { public function __construct(IDbConnection $dbConn, IConfig $urls) {
$this->dbConn = $dbConn; $this->dbConn = $dbConn;
$this->urls = $urls; $this->urls = $urls;
$dbConn->execute(self::DB_INIT); $dbConn->execute(self::DB_INIT);

View file

@ -2,14 +2,14 @@
namespace Awaki; namespace Awaki;
use Index\Data\IDbConnection; use Index\Data\IDbConnection;
use Index\Data\DbType;
use Index\Routing\IRouter; use Index\Routing\IRouter;
use Syokuhou\IConfig;
final class RedirectorRoutes { final class RedirectorRoutes {
private IDbConnection $dbConn; private IDbConnection $dbConn;
private array $urls; private IConfig $urls;
public function __construct(IRouter $router, IDbConnection $dbConn, array $urls) { public function __construct(IRouter $router, IDbConnection $dbConn, IConfig $urls) {
$this->dbConn = $dbConn; $this->dbConn = $dbConn;
$this->urls = $urls; $this->urls = $urls;
@ -48,8 +48,8 @@ final class RedirectorRoutes {
public function redirectDatabase($response, $request, $id) { public function redirectDatabase($response, $request, $id) {
$getInfo = $this->dbConn->prepare('SELECT redir_id, redir_url FROM awk_redirects WHERE redir_id = ? OR redir_vanity = ?'); $getInfo = $this->dbConn->prepare('SELECT redir_id, redir_url FROM awk_redirects WHERE redir_id = ? OR redir_vanity = ?');
$getInfo->addParameter(1, $id, DbType::INTEGER); $getInfo->addParameter(1, $id);
$getInfo->addParameter(2, $id, DbType::STRING); $getInfo->addParameter(2, $id);
$getInfo->execute(); $getInfo->execute();
$info = $getInfo->getResult(); $info = $getInfo->getResult();
@ -57,7 +57,7 @@ final class RedirectorRoutes {
return 404; return 404;
$incClicks = $this->dbConn->prepare('UPDATE awk_redirects SET redir_clicks = redir_clicks + 1 WHERE redir_id = ?'); $incClicks = $this->dbConn->prepare('UPDATE awk_redirects SET redir_clicks = redir_clicks + 1 WHERE redir_id = ?');
$incClicks->addParameter(1, $info->getInteger(0), DbType::INTEGER); $incClicks->addParameter(1, $info->getInteger(0));
$incClicks->execute(); $incClicks->execute();
$this->redirect($response, $request, $info->getString(1)); $this->redirect($response, $request, $info->getString(1));
@ -72,18 +72,18 @@ final class RedirectorRoutes {
} }
public function redirectProfile($response, $request, string $userId) { public function redirectProfile($response, $request, string $userId) {
$this->redirectSimple($response, $request, $this->urls['user_profile'], $userId); $this->redirectSimple($response, $request, $this->urls->getString('user_profile'), $userId);
} }
public function redirectForumCategory($response, $request, string $categoryId) { public function redirectForumCategory($response, $request, string $categoryId) {
$this->redirectSimple($response, $request, $this->urls['forum_category'], $categoryId); $this->redirectSimple($response, $request, $this->urls->getString('forum_category'), $categoryId);
} }
public function redirectForumTopic($response, $request, string $topicId) { public function redirectForumTopic($response, $request, string $topicId) {
$this->redirectSimple($response, $request, $this->urls['forum_topic'], $topicId); $this->redirectSimple($response, $request, $this->urls->getString('forum_topic'), $topicId);
} }
public function redirectForumPost($response, $request, string $postId) { public function redirectForumPost($response, $request, string $postId) {
$this->redirectSimple($response, $request, $this->urls['forum_post'], $postId); $this->redirectSimple($response, $request, $this->urls->getString('forum_post'), $postId);
} }
} }