Hajeebtok.php 1.7 KB

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