Added autoloader

This commit is contained in:
Filip Znachor 2024-01-12 11:15:00 +01:00
parent 9b9b9866c0
commit f4fbe1413f
11 changed files with 59 additions and 58 deletions

View file

@ -7,5 +7,11 @@
"Composer\\Config::disableProcessTimeout",
"php -S localhost:8000 -t public"
]
},
"autoload": {
"psr-4": {
"UptimeStatus\\": "controller/",
"UptimeStatus\\Model\\": "model/"
}
}
}

27
controller/Filters.php Normal file
View file

@ -0,0 +1,27 @@
<?php namespace UptimeStatus;
class Filters {
public static function globalstatus() {
return new \Twig\TwigFilter('globalstatus', function (array $stats, int $total) {
if ($stats[3] > 0) return 3;
if ($stats[1] == $total) return 1;
if ($stats[1] == 0) return 0;
return 2;
});
}
public static function statusicon() {
return new \Twig\TwigFilter('statusicon', function (int $status, string $suffix = "svg") {
$icons = ["error", "success", "warning", "maintenance"];
return "/icon/{$icons[$status]}.$suffix";
});
}
public static function statuscolor() {
return new \Twig\TwigFilter('statuscolor', function (int $status) {
return ["#F87171", "#10B981", "#FFBB6D", "#9575cd"][$status];
});
}
}

View file

@ -1,4 +1,4 @@
<?php namespace Locale;
<?php namespace UptimeStatus;
class Locale {

View file

@ -1,13 +1,11 @@
<?php
require(__DIR__ . "/status.php");
<?php namespace UptimeStatus;
class Router {
private UptimeStatus $status;
private Status $status;
public function __construct($config) {
$this->status = new UptimeStatus($config);
$this->status = new Status($config);
}
public function get_path(): string {

View file

@ -1,11 +1,8 @@
<?php
<?php namespace UptimeStatus;
require_once("../vendor/autoload.php");
require_once("../model/page.php");
require_once(__DIR__ . "/filters.php");
require_once(__DIR__ . "/locale.php");
use UptimeStatus\Model\Page;
class UptimeStatus {
class Status {
private array $config;
@ -34,11 +31,11 @@ class UptimeStatus {
$loader = new \Twig\Loader\FilesystemLoader("../view/");
$twig = new \Twig\Environment($loader, $twig_config);
$twig->addFilter(\Filters\globalstatus());
$twig->addFilter(\Filters\statusicon());
$twig->addFilter(\Filters\statuscolor());
$twig->addFilter(Filters::globalstatus());
$twig->addFilter(Filters::statusicon());
$twig->addFilter(Filters::statuscolor());
$locale = new \Locale\Locale($this->cfg("default_language"));
$locale = new Locale($this->cfg("default_language"));
$twig->addFilter($locale->t());
$ext = $twig->getExtension(\Twig\Extension\CoreExtension::class);

View file

@ -1,25 +0,0 @@
<?php namespace Filters;
require_once("../vendor/autoload.php");
function globalstatus() {
return new \Twig\TwigFilter('globalstatus', function (array $stats, int $total) {
if ($stats[3] > 0) return 3;
if ($stats[1] == $total) return 1;
if ($stats[1] == 0) return 0;
return 2;
});
}
function statusicon() {
return new \Twig\TwigFilter('statusicon', function (int $status, string $suffix = "svg") {
$icons = ["error", "success", "warning", "maintenance"];
return "/icon/{$icons[$status]}.$suffix";
});
}
function statuscolor() {
return new \Twig\TwigFilter('statuscolor', function (int $status) {
return ["#F87171", "#10B981", "#FFBB6D", "#9575cd"][$status];
});
}

View file

@ -1,8 +0,0 @@
<?php
require("../config.inc.php");
require(__DIR__ . "/router.php");
$router = new Router($config);
$router->render();

View file

@ -1,6 +1,6 @@
<?php
<?php namespace UptimeStatus\Model;
require_once(__DIR__ . "/monitor.php");
use UptimeStatus\Status;
class Group {
@ -22,7 +22,7 @@ class Group {
return $this->stats;
}
public static function convert(UptimeStatus $s, array $oldGroup, array $heartbeat): Group {
public static function convert(Status $s, array $oldGroup, array $heartbeat): Group {
$group = new Group($oldGroup["name"]);
foreach ($oldGroup["monitorList"] as $oldMonitor) {
$group->add_monitor(Monitor::convert($s, $oldMonitor, $heartbeat));

View file

@ -1,4 +1,6 @@
<?php
<?php namespace UptimeStatus\Model;
use UptimeStatus\Status;
class Monitor {
@ -20,7 +22,7 @@ class Monitor {
return $this->last["status"] ?? 0;
}
public static function convert(UptimeStatus $s, array $oldMonitor, array $heartbeat): Monitor {
public static function convert(Status $s, array $oldMonitor, array $heartbeat): Monitor {
$id = $oldMonitor["id"];
$opts = $s->cfg("monitor_options") ?? [];

View file

@ -1,6 +1,6 @@
<?php
<?php namespace UptimeStatus\Model;
require_once(__DIR__ . "/group.php");
use UptimeStatus\Status;
class Page {
@ -32,7 +32,7 @@ class Page {
];
}
public static function get(UptimeStatus $s, string $page): ?Page {
public static function get(Status $s, string $page): ?Page {
$url = $s->cfg("uptime_kuma_url");
$urls = [

View file

@ -1,4 +1,8 @@
<?php
require("../vendor/autoload.php");
require("../config.inc.php");
require("../controller/main.php");
$router = new UptimeStatus\Router($config);
$router->render();