<?php

namespace kernel;



use Phroute\Phroute\Dispatcher;

class App
{

    static string $responseType = ResponseType::TEXT_HTML;

    static CgRouteCollector $collector;

    static Header $header;

    public static Database $db;

    public function run(): void
    {
        $dispatcher = new Dispatcher(App::$collector->getData());
        $response = $dispatcher->dispatch($_SERVER['REQUEST_METHOD'], parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
        App::$header->set();

        //header('Content-Type: ' . App::$responseType);
        echo $response;
    }

    public function load(): static
    {
        App::$collector = new CgRouteCollector();
        $this->setRouting();

        return $this;
    }

    public function setRouting(): void
    {
        include KERNEL_DIR . "/routs/admin.php";
        include ROOT_DIR . "/rout.php";
    }

    public static function create(): App
    {
        return new self();
    }

}