56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						||
/*
 | 
						||
 * Класс для работы с базой данных
 | 
						||
 * @package freecms
 | 
						||
 */
 | 
						||
 | 
						||
namespace freecms\classes;
 | 
						||
 | 
						||
/**
 | 
						||
 * Используем класс PDO для подключения к БД
 | 
						||
 */
 | 
						||
 | 
						||
use freecms;
 | 
						||
use freecms\components\Dictionary;
 | 
						||
use freecms\enums\DBDriversEnum;
 | 
						||
use PDO;
 | 
						||
use const freecms\FCMS_DB_DRIVER;
 | 
						||
use const freecms\FCMS_DBNAME;
 | 
						||
use const freecms\FCMS_DBUSERNAME;
 | 
						||
use const freecms\FCMS_DBUSERPASSWORD;
 | 
						||
 | 
						||
/**
 | 
						||
 * Класс для работы с базой данных
 | 
						||
 */
 | 
						||
class FcmsDB
 | 
						||
{
 | 
						||
    /**
 | 
						||
     * @var PDO Переменная, хранящая класс PDO.
 | 
						||
     */
 | 
						||
    private PDO $pdo;
 | 
						||
 | 
						||
    /**
 | 
						||
     * Конструктор. Подключает базу данных
 | 
						||
     * @param DBDriversEnum $dbType Тип базы данных
 | 
						||
     * @param string $connectionString Строка подключения к базе данных
 | 
						||
     * @param string $userName Имя пользователя базы данных
 | 
						||
     * @param string $userPassword Пароль к базе данных
 | 
						||
     */
 | 
						||
    public function __construct()
 | 
						||
    {
 | 
						||
        $type = match (FCMS_DB_DRIVER) {
 | 
						||
            DBDriversEnum::MSSQL => 'sqlsrv',
 | 
						||
            DBDriversEnum::PostgreSQL => 'pgsql',
 | 
						||
            DBDriversEnum::OracleDB => 'oci',
 | 
						||
            DBDriversEnum::SQLite => 'sqlite',
 | 
						||
            default => 'mysql',
 | 
						||
        };
 | 
						||
        $this->pdo = new PDO($type . ':' . FCMS_DBNAME, FCMS_DBUSERNAME, FCMS_DBUSERPASSWORD);
 | 
						||
    }
 | 
						||
 | 
						||
    public function select(string $query, Dictionary $variables)
 | 
						||
    {
 | 
						||
 | 
						||
    }
 | 
						||
}
 |