You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							106 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
	
	
							106 lines
						
					
					
						
							1.6 KiB
						
					
					
				<?php | 
						|
 | 
						|
namespace App\Classes; | 
						|
 | 
						|
class Db { | 
						|
 | 
						|
	protected static $db; | 
						|
 | 
						|
	protected static $columns = []; | 
						|
	protected static $sections = []; | 
						|
	protected static $pages = []; | 
						|
 | 
						|
	//-------------------------------------// | 
						|
 | 
						|
	public static function load(): void { | 
						|
		try { | 
						|
			$host = Config::c('DB_HOST'); | 
						|
			$name = Config::c('DB_NAME'); | 
						|
			self::$db = new \PDO( | 
						|
				"mysql:host=$host;dbname=$name;charset=utf8mb4", | 
						|
				Config::c('DB_USERNAME'), | 
						|
				Config::c('DB_PASSWORD') | 
						|
			); | 
						|
		} catch (\PDOException $e) { | 
						|
			throw new \PDOException($e->getMessage(), (int)$e->getCode()); | 
						|
		} | 
						|
	} | 
						|
 | 
						|
	//-------------------------------------// | 
						|
 | 
						|
	/** | 
						|
	 * Get the PDO connection object | 
						|
	 * | 
						|
	 * @return PDO | 
						|
	 */ | 
						|
	public static function get(): \PDO { | 
						|
		return self::$db; | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * Get all columns | 
						|
	 * | 
						|
	 * @return array | 
						|
	 */ | 
						|
	public static function getColumns(): array | 
						|
	{ | 
						|
		return self::$columns; | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * Get all sections | 
						|
	 * | 
						|
	 * @return array | 
						|
	 */ | 
						|
	public static function getSections(): array | 
						|
	{ | 
						|
		return self::$sections; | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * Get all pages | 
						|
	 * | 
						|
	 * @return array | 
						|
	 */ | 
						|
	public static function getPages(): array | 
						|
	{ | 
						|
		return self::$pages; | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * Store columns | 
						|
	 * | 
						|
	 * @param array $columns | 
						|
	 * | 
						|
	 * @return void | 
						|
	 */ | 
						|
	public static function setColumns(array $columns): void | 
						|
	{ | 
						|
		self::$columns = $columns; | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * Store sections | 
						|
	 * | 
						|
	 * @param array $sections | 
						|
	 * | 
						|
	 * @return void | 
						|
	 */ | 
						|
	public static function setSections(array $sections): void | 
						|
	{ | 
						|
		self::$sections = $sections; | 
						|
	} | 
						|
 | 
						|
	/** | 
						|
	 * Store pages | 
						|
	 * | 
						|
	 * @param array $pages | 
						|
	 * | 
						|
	 * @return void | 
						|
	 */ | 
						|
	public static function setPages(array $pages): void | 
						|
	{ | 
						|
		self::$pages = $pages; | 
						|
	} | 
						|
 | 
						|
}
 | 
						|
 |