Hajeebtok.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace app;
  3. use app\Controllers\AccountController;
  4. use app\Types\DatabaseObjects\Message;
  5. use app\Types\DatabaseObjects\Comment;
  6. use app\Types\WebhookMessage;
  7. use Exception;
  8. use Pecee\Http\Request;
  9. use Pecee\SimpleRouter\SimpleRouter;
  10. use Pecee\Http\Middleware\BaseCsrfVerifier;
  11. use app\Controllers\VideoController;
  12. use app\Controllers\HomeController;
  13. use app\Interfaces\IDatabase;
  14. use app\Types\MariaDBDatabase;
  15. use app\Types\DatabaseObjects\Video;
  16. use app\Types\DatabaseObjects\Account;
  17. use app\Controllers\ErrorController;
  18. class Hajeebtok {
  19. public static IDatabase $Database;
  20. public static Config $Config;
  21. public static function InitializeApp() {
  22. Logger::SetMinLevel(LogLevel::DBUG);
  23. Logger::SetMaxLogSizeKB(5000);
  24. self::$Config = new Config();
  25. self::$Database = new MariaDBDatabase([
  26. "Host" => self::$Config->GetByDotKey("Database.Host"),
  27. "Port" => self::$Config->GetByDotKey("Database.Port"),
  28. "Username" => self::$Config->GetByDotKey("Database.Username"),
  29. "Password" => self::$Config->GetByDotKey("Database.Password"),
  30. "Database" => self::$Config->GetByDotKey("Database.Database"),
  31. "Charset" => self::$Config->GetByDotKey("Database.Charset"),
  32. ]);
  33. //SimpleRouter::csrfVerifier(new BaseCsrfVerifier());
  34. SimpleRouter::setDefaultNamespace('app\Controllers');
  35. VideoController::RegisterRoutes();
  36. HomeController::RegisterRoutes();
  37. AccountController::RegisterRoutes();
  38. Logger::Info("Hajeebtok application initialized.");
  39. SimpleRouter::error(function (Request $request, Exception $error) {
  40. Logger::Error("Route fault: $error");
  41. $request->setRewriteCallback(function () use ($error) {
  42. return ErrorController::ApiError($error->getCode());
  43. });
  44. });
  45. SimpleRouter::start();
  46. }
  47. }