63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace kernel;
 | |
| 
 | |
| 
 | |
| 
 | |
| use kernel\helpers\Debug;
 | |
| use kernel\modules\user\models\User;
 | |
| use kernel\services\ModuleService;
 | |
| use Phroute\Phroute\Dispatcher;
 | |
| 
 | |
| class App
 | |
| {
 | |
| 
 | |
|     static string $responseType = ResponseType::TEXT_HTML;
 | |
| 
 | |
|     static CgRouteCollector $collector;
 | |
| 
 | |
|     static Header $header;
 | |
| 
 | |
|     static User $user;
 | |
| 
 | |
|     static array $secure;
 | |
| 
 | |
|     public ModuleService $moduleService;
 | |
| 
 | |
|     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
 | |
|     {
 | |
|         $this->moduleService = new ModuleService();
 | |
|         App::$collector = new CgRouteCollector();
 | |
|         $this->setRouting();
 | |
| 
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     public function setRouting(): void
 | |
|     {
 | |
|         include KERNEL_DIR . "/routs/admin.php";
 | |
|         include ROOT_DIR . "/rout.php";
 | |
|         $modules_routs = $this->moduleService->getModulesRouts();
 | |
|         foreach ($modules_routs as $rout){
 | |
|             include "$rout";
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public static function create(): App
 | |
|     {
 | |
|         return new self();
 | |
|     }
 | |
| 
 | |
| } |