Перейти к содержанию

Table

Класс для преобразования таблицы и её колонок

Метод подключения

PHP
include_once DLEPlugins::Check(ENGINE_DIR . '/inc/maharder/_includes/classes/Table.php');

Свойства

model

Название модели / плагина / приложения * Может принимать значение null

PHP
private ?string $model

name

Название таблицы * Может принимать значение null

PHP
private ?string $name

id

Название колонки / ячейки с идентификатором * Может принимать значение null

PHP
private ?string $id

migrations_path

Путь, куда будут сохраняться описания миграций * Может принимать значение null

PHP
private ?string $migrations_path

columns

Массив колонок / ячеек таблицы с их описанием и параметрами

PHP
private array $columns

col_keys

Ключи таблицы (Primary / Unique / Foreign)

PHP
private array $col_keys

now

Текущие дата и время

PHP
private ?string $now

Методы

__construct

Конструктор

PHP
public __construct(string $id, string $name, string $model, array $vars, array $col_keys, string|null $now = null): mixed

Параметры:

Параметр Тип Описание
$id string Название ID колонки
$name string Название таблицы
$model string Название модели
$vars array Параметры колонок
$col_keys array Параметры ключей таблицы
$now string|null Параметр текущей даты и времени

Пример:

PHP
'cron_id',
'telegram_con',
'TelegramPosting',
[
    [
        'name'  => 'news_id',
        'type'  => 'int',
    ],
    [
        'name'  => 'time',
        'type'  => 'int',
    ],
    [
        'name'  => 'type',
        'type'  => 'string',
        'limit' => 255
    ],
],
[
    [
        'name' => 'foreign',
        [
            'type' => 'after',
            'column' => 'news_id',
            'target_table' => 'post',
            'target_column' => 'id',
            'on_delete' => 'CASCADE'
        ]
    ]
]

getMigrationsPath

Возвращает путь до папки с миграциями

PHP
public getMigrationsPath(): string|null

setMigrationsPath

Устанавливает путь для миграций в базу данных

PHP
public setMigrationsPath(string|null $migrations_path = null): void

Параметры:

Параметр Тип Описание
$migrations_path string|null Путь до папки с миграциями

prepare_table_attributes

Функция подготавливает и проверяет тип колонки, добавляет необходимые значения и удаляет ненужные или пустые значения

PHP
private prepare_table_attributes(array $attributes): array

Параметры:

Параметр Тип Описание
$attributes array Массив данных с информацией колонки

setKey

Устанавливает ключи для таблицы

PHP
private setKey(string $name, array $vars): string

Параметры:

Параметр Тип Описание
$name string Название ключа
$vars array Перечень важных дополнительных параметров:
- type - тип вставления ключей в код, поддерживаются: 'inside', 'modify', 'change', 'delete', 'create', 'update', 'new', 'drop', 'alter'
- column - название колонки, к которой будет применяться модификация, может быть как массивом, так и прстым значением
- table - название таблицы, в которой будет применены ключи.
По умолчанию: используется таблица модели
- target_table - нужно для ключа Foreign Key, указывает к которой будет применяться ключ
- target_column - нужно для ключа Foreign Key, указывает к которой колонке относится ключ

Параметры $vars:

Параметр Тип Описание
type string тип вставления ключей в код, поддерживаются: 'inside', 'modify', 'change', 'delete', 'create', 'update', 'new', 'drop', 'alter'
column string название колонки, к которой будет применяться модификация, может быть как массивом, так и прстым значением
table string название таблицы, в которой будет применены ключи
target_table string нужно для ключа Foreign Key, указывает к которой будет применяться ключ
target_column string нужно для ключа Foreign Key, указывает к которой колонке относится ключ
on_delete string нужно для ключа Foreign Key при удалении подключённого объекта, может содержать одни из значений: 'RESTRICT', 'CASCADE', 'SET NULL', 'NO ACTION', 'SET DEFAULT'.
По умолчанию: NO ACTION
on_update string нужно для ключа Foreign Key при обновлении подключённого объекта, может содержать одни из значений: 'RESTRICT', 'CASCADE', 'SET NULL', 'NO ACTION', 'SET DEFAULT' .
По умолчанию: NO ACTION

Параметры $vars[type]:

Параметр Тип Описание
inside string Ключ проставляется внутри запроса
modify, change, ̀update, alter string Создаётся команда обновления ключа
create, new string Создаётся команда создания ключа вне запроса создания таблицы
delete, drop string Создаётся команда удаления ключа

keyAction

Вспомогательная функция для подготовки создания ключей для таблицы

PHP
private keyAction(string $type, bool $exists, string $table, string $key_type, string $key_name, string $keys, array $vars): string

Параметры:

Параметр Тип Описание
$type string Тип действия ключа: inside, create, edit, drop
$exists bool Проверка на существующий ключ
$table string Название таблицы
$key_type string Тип ключа: primary, foreign, unique
$key_name string Название ключа
$keys string Колонки, которые будут учитываться при создания ключа
$vars array Дополнительные параметры:
- on_delete - Важный параметр для ключа Foreign Key,
может содержать: 'RESTRICT', 'CASCADE', 'SET NULL', 'NO ACTION', 'SET DEFAULT'
- on_update - Важный параметр для ключа Foreign Key,
может содержать: 'RESTRICT', 'CASCADE', 'SET NULL', 'NO ACTION', 'SET DEFAULT'

prepareTable

Готовим установленные данные для миграции * Добавляет колонку с создателем объекта * Добавляет колонку с редактором объекта * Добавляет колонку с датой создания объекта * Добавляет колонку с датой изменения объекта * Возвращает массив с данными таблицы

PHP
private prepareTable(): array[]

checkMigrations

Проверка миграций * Если миграций нет или были найдены изменения в модели, то создаёт миграцию * Изменения можно просмотреть в файлах, которые создаются при миграции.

PHP
public checkMigrations( ?string $path = null): void

Параметры:

Параметр Тип Описание
$path string Путь до последнего файла миграции

generateMigration

Создаём файл миграции * Подготавливает таблицу к миграции * Сохраняет все изменения в sql файл в папку с миграциями

PHP
private generateMigration(string $file): array

Параметры:

Параметр Тип Описание
$file string Путь до файла последней миграции таблицы

generate_column_sql

Генерирует строку колонки по параметрам * Возвращает sql команду

PHP
private generate_column_sql(array $columns): string

Параметры:

Параметр Тип Описание
$columns array Массив с колонками
***

getId

Возвращает название колонки с ID

PHP
public getId(): string

setId

Устанавливает название колонки с ID

PHP
public setId(string $id): void

Параметры:

Параметр Тип Описание
$id string Название колонки

getName

Возвращает название таблицы

PHP
public getName(): string

setName

Устанавливает название таблицы

PHP
public setName(string $name): void

Параметры:

Параметр Тип Описание
$name string Название

getModel

Возвращает название модели

PHP
public getModel(): string

setModel

Устанавливает название модели

PHP
public setModel(string $model): void

Параметры:

Параметр Тип Описание
$model string Название

getColumns

Возвращает все колонки таблицы в виде массива

PHP
public getColumns(): array

setColumns

Устанавливает колонки таблицы

PHP
public setColumns(array|string $vars): void
Параметры:

Параметр Тип Описание
$vars array|string Добавляет колонки в общий массив

getColKeys

Возвращает ключи в виде массива

PHP
public getColKeys(string $type = null): array

Параметры:

Параметр Тип Описание
$type string Параметр возврата определённого типа, по умолчанию - все

setColKeys

Добавляет ключи (Primary, Foreign Key, Unique) к базе данных

PHP
public setColKeys(string|array $col_keys, string $type = "after"): void

Параметры:

Параметр Тип Описание
$col_keys string|array Может быть простым текстом, либо массивом
$type string Устанавливает тип ключа: (Можно использовать любой другой тип)
inside - Устанавливает ключи в функии создания таблицы
after - Устанавливает ключи уже после функции создания таблицы

getNow

Возвращает временной штамп

PHP
public getNow(): string

setNow

Устанавливает текущую дату в формате цифрового штампа * Если передаётся пустой параметр, то берутся текущие дата и время

PHP
public setNow(string|null $now = null): void

Параметры:

Параметр Тип Описание
$now string|null Если значение пустое, то используется глобальное значение

Унаследованные методы

DataLoader

Документация: DataLoader

LogGenerator

Документация: LogGenerator



Последнее обновление: May 25, 2022
Дата создания: May 25, 2022
К началу