52 lines
		
	
	
		
			824 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			824 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /*
 | |
|     This is the main file to be included on every page.
 | |
|     It will act as a front controller of our application.
 | |
|       _____
 | |
|      /     \
 | |
|     | () () |
 | |
|      \  ^  /
 | |
|       |||||
 | |
|       |||||
 | |
| 
 | |
|     Tread carefully
 | |
| */
 | |
| 
 | |
| // Disable type coercion
 | |
| declare(strict_types=1);
 | |
| 
 | |
| // Autoloader
 | |
| spl_autoload_register(function ($class_name) {
 | |
|     require __DIR__ . '/core/' . $class_name . '.php';
 | |
| });
 | |
| 
 | |
| /* === App Setup === */
 | |
| 
 | |
| new ErrorHandler;
 | |
| 
 | |
| $config   = (
 | |
|     new Config(__DIR__ . '/config.php')
 | |
| )->config;
 | |
| 
 | |
| $database = new Database($config['database']);
 | |
| $session  = new Session;
 | |
| $user     = new User($session, $database);
 | |
| 
 | |
| new AccessControl($user);
 | |
| 
 | |
| $app = new App(
 | |
|     $config,
 | |
|     $database,
 | |
|     $session,
 | |
|     $user
 | |
| );
 | |
| 
 | |
| // We will use $app instead
 | |
| unset(
 | |
|     $config,
 | |
|     $database,
 | |
|     $session,
 | |
|     $user
 | |
| );
 | |
| 
 | |
| return $app; |