Your IP : 216.73.216.68


Current Path : /home/jeromecohp/www/plugins/system/yooessentials/modules/core/src/
Upload File :
Current File : /home/jeromecohp/www/plugins/system/yooessentials/modules/core/src/AbstractDatabaseManager.php

<?php
/**
 * @package   Essentials YOOtheme Pro (Freemium) 2.0.19 build 1026.0920
 * @author    ZOOlanders https://www.zoolanders.com
 * @copyright Copyright (C) Joolanders, SL
 * @license   http://www.gnu.org/licenses/gpl.html GNU/GPL
 */

namespace ZOOlanders\YOOessentials;

use ZOOlanders\YOOessentials\Database\Database;

abstract class AbstractDatabaseManager
{
    public function getTableColumnsFromDb(Database $db, string $table): array
    {
        $columns = $db->fetchAll('SHOW FULL COLUMNS FROM ' . $table);

        $data = [];
        foreach ($columns as $column) {
            $field = $column['Field'] ?? null;
            $type = $column['Type'] ?? 'String';

            if ($field) {
                $data[$field] = $type;
            }
        }

        return $data;
    }

    public function convertSqlTypeToSchemaType(string $type): string
    {
        switch ($type) {
            case 'int':
                return 'Int';
            case 'string':
            case 'String':
            case 'varchar':
            case 'text':
            case 'longtext':
            case 'mediumtext':
            case 'char':
            default:
                return 'String';
        }
    }

    public function getSchemaFiltersFromSqlType(string $type): array
    {
        switch ($type) {
            case 'datetime':
            case 'date':
                return ['date'];
            case 'string':
            case 'String':
            case 'varchar':
            case 'text':
            case 'longtext':
            case 'mediumtext':
            case 'char':
                return ['limit'];
        }

        return [];
    }
}