48 lines
923 B
PHP
48 lines
923 B
PHP
|
<?php
|
||
|
|
||
|
namespace kernel;
|
||
|
|
||
|
|
||
|
|
||
|
use app\helpers\Debug;
|
||
|
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));
|
||
|
header('Content-Type: ' . App::$responseType);
|
||
|
App::$header->set();
|
||
|
echo $response;
|
||
|
}
|
||
|
|
||
|
public function load(): static
|
||
|
{
|
||
|
App::$collector = new CgRouteCollector();
|
||
|
$this->setRouting();
|
||
|
|
||
|
return $this;
|
||
|
}
|
||
|
|
||
|
public function setRouting(): void
|
||
|
{
|
||
|
include ROOT_DIR . "/rout.php";
|
||
|
}
|
||
|
|
||
|
public static function create(): App
|
||
|
{
|
||
|
return new self();
|
||
|
}
|
||
|
|
||
|
}
|