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

Класс: MhDB

Краткое содержание:

Класс для работы с базой данных


Свойства


Методы


Подробности

  • Путь: engine/inc/maharder/_includes/database/MhDB.php

Свойства

private $em : ?\Cycle\ORM\EntityManager


Краткое содержание

Менеджер сущностей ORM, обеспечивающий операции CRUD и управление состоянием сущностей.

Описание

Инициализируется в методе setManager.

**Тип: ** EntityManager

private $orm : ?\Cycle\ORM\ORM


Краткое содержание

ORM-класс для управления объектами и предоставления операций высокого уровня.

Описание

Используется для создания экземпляра ORM, управления сущностями, получением менеджера базы данных и выполнения запросов.

**Тип: ** ORM

private $orm_config : ?\Cycle\Database\Config\DatabaseConfig


Краткое содержание

Конфигурация базы данных для настройки параметров подключения, драйвера и других настроек.

Описание

Генерируется с помощью метода generateOrmConfig.

**Тип: ** DatabaseConfig

private $orm_manager : ?\Cycle\Database\DatabaseManager


Краткое содержание

Менеджер базы данных, предоставляющий функционал работы с подключениями и конфигурациями БД.

Описание

Генерируется с помощью метода generateManager.

**Тип: ** DatabaseManager

Подробности:

private $user_db : bool


Краткое содержание

Флаг, определяющий подключение к базе данных пользователя (true) или основной базы данных (false).

Описание

Используется при создании конфигурации базы данных.

Тип: Логические значения


Методы

__construct

Text Only
public __construct(bool  user_db = false) : mixed
Краткое содержание

Конструктор класса MhDB.

Описание

Настраивает базу данных, инициализирует ORM, а также управляет объектом EntityManager.

Свойства:
Название Тип По умолчанию
$user_db bool false
Ошибки:
Тип Описание
\Cycle\ORM\Exception\SchemaException Если при генерации ORM произошла ошибка в схеме базы данных.
\Cycle\Migrations\Exception\MigrationException Если миграции не могут быть выполнены.
\RuntimeException Если не удается нормально настроить конфигурацию подключения к базе данных.
Возвращает:
Text Only
mixed

count

Text Only
public count(object|string  entity) : int
Краткое содержание

Подсчитывает количество записей для указанной сущности.

Описание

Эта функция использует репозиторий, связанный с сущностью, для выполнения запроса на подсчет количества записей.

Свойства:
Название Тип По умолчанию
$entity object|string
Возвращает:
Text Only
int

Количество записей в репозитории, связанных с данной сущностью.


create

Text Only
public create(object  entity) : \ORM\Transaction\StateInterface
Краткое содержание

Обновляет предоставленную сущность в базе данных.

Описание

Эта функция выполняет процесс обновления сущности посредством вызова метода run, который предполагает выполнение различных ORM-операций, таких как persist.

Свойства:
Название Тип По умолчанию
$entity object
Ошибки:
Тип Описание
\ORM\Exception\EntityNotManagedException Если сущность не управляется текущим менеджером сущностей.
\ORM\Exception\TransactionException|\Throwable Если транзакция не может быть завершена.
Возвращает:
Text Only
\ORM\Transaction\StateInterface

Возвращает состояние ORM-транзакции после обновления сущности.


delete

Text Only
public delete(object|string  entity, int  pk) : \ORM\Transaction\StateInterface
Краткое содержание

Удаляет сущность на основе переданного объекта и первичного ключа.

Описание

Эта функция выполняет следующие шаги:

  1. Извлекает объект сущности из базы данных с помощью метода get.
  2. Передает этот объект менеджеру сущностей для удаления.
  3. Выполняет транзакцию удаления.
Свойства:
Название Тип По умолчанию
$entity object|string
$pk int
Ошибки:
Тип Описание
\Throwable При любой ошибке в ORM (например, сбой во время удаления).
Возвращает:
Text Only
\ORM\Transaction\StateInterface

Возвращает состояние завершенной транзакции удаления.


get

Text Only
public get(object|string  entity, int  pk) : object|null
Краткое содержание

Получает сущность из хранилища данных по её первичному ключу.

Свойства:
Название Тип По умолчанию
$entity object|string
$pk int
Возвращает:
Text Only
object|null

Возвращает найденный объект сущности или null, если объект с заданным первичным ключом отсутствует.


getAll

Text Only
public getAll(object|string  entity) : array
Краткое содержание

Получает все записи для указанной сущности из хранилища.

Описание

Этот метод использует репозиторий, ассоциированный с указанной сущностью, для получения всех записей из базы данных.

Свойства:
Название Тип По умолчанию
$entity object|string
Возвращает:
Text Only
array

Массив объектов сущности, извлеченных из базы данных. Если данных в хранилище нет, возвращается пустой массив.


getManager

Text Only
public getManager() : \Cycle\ORM\EntityManager
Возвращает:
Text Only
\Cycle\ORM\EntityManager

getOrm

Text Only
public getOrm() : \ORM\ORM
Краткое содержание

Возвращает экземпляр ORM, создавая его при необходимости.

Описание

Данный метод вызывает generateOrm, который инициализирует ORM, используя настраиваемые зависимости, такие как Schema, Factory, Container и CommandGenerator. Повторные вызовы возвращают уже созданный экземпляр ORM.

Ошибки:
Тип Описание
\RuntimeException Если при генерации ORM возникли ошибки.
Возвращает:
Text Only
\ORM\ORM

Экземпляр ORM.


paginate

Text Only
public paginate(object|string  entity, string  orderby, string  sortby = 'DESC', int  limit = 10, int  page = 1) : \ORM\Select
Краткое содержание

Пагинирует данные из базы данных для указанной сущности.

Описание

Этот метод извлекает данные для заданной сущности, применяет сортировку и пагинацию на основе переданных параметров и возвращает настроенный объект ORM\Select.

Свойства:
Название Тип По умолчанию
$entity object|string
$orderby string
$sortby string 'DESC'
$limit int 10
$page int 1
Возвращает:
Text Only
\ORM\Select

Настроенный объект Select, содержащий отсортированные и пагинированные данные.


query

Text Only
public query(string  sql, array  params = []) : \StatementInterface
Краткое содержание

Выполняет SQL-запрос с указанными параметрами и возвращает результат.

Описание

Метод использует объект DatabaseManager для получения соединения с базой данных и дальнейшего выполнения SQL-запроса. Позволяет передавать параметры для безопасного выполнения подготовленных запросов.

Свойства:
Название Тип По умолчанию
$sql string
$params array []
Ошибки:
Тип Описание
\InvalidArgumentException Может бросить исключение при передаче некорректного SQL-запроса.
\RuntimeException Может бросить исключение, если соединение с базой данных невозможно.
Возвращает:
Text Only
\StatementInterface

Результирующий объект, представляющий результат выполнения запроса.


repository

Text Only
public repository(object|string  entity) : \ORM\RepositoryInterface
Краткое содержание

Возвращает репозиторий для указанной сущности или класса сущности.

Описание

Эта функция принимает объект сущности или строку, представляющую имя класса сущности, определяет их имя класса и возвращает соответствующий репозиторий, используя ORM.

Свойства:
Название Тип По умолчанию
$entity object string
Ошибки:
Тип Описание
\ORM\Exception\RepositoryNotFoundException Если репозиторий для указанной сущности не найден.
Возвращает:
Text Only
\ORM\RepositoryInterface

Интерфейс репозитория для работы с указанной сущностью.


run

Text Only
public run(object  entity) : \ORM\Transaction\StateInterface
Краткое содержание

Выполняет сохранение сущности и возвращает состояние транзакции.

Описание

Этот метод обрабатывает сохранение переданного объекта сущности с использованием связанного EntityManager. Завершает операцию методом run(), который выполняет транзакцию и возвращает её результирующее состояние.

Свойства:
Название Тип По умолчанию
$entity object
Ошибки:
Тип Описание
\RuntimeException|\Throwable Исключение выбрасывается, если EntityManager не был корректно инициализирован, что приводит к ошибке сохранения.
Возвращает:
Text Only
\ORM\Transaction\StateInterface

Результирующее состояние транзакции после сохранения сущности.


setManager

Text Only
public setManager() : void
Краткое содержание

Устанавливает экземпляр EntityManager на основе текущего ORM.

Описание

Метод инициализирует объект EntityManager (менеджера для управления сущностями) на основе существующего объекта ORM (Object-Relational Mapping). Если ORM не был предварительно сконфигурирован, это может привести к выбросу ошибок в процессе создания EntityManager.

Ошибки:
Тип Описание
\RuntimeException Если объект ORM не был предварительно создан.
Возвращает:
Text Only
void

update

Text Only
public update(object  entity) : \ORM\Transaction\StateInterface
Краткое содержание

Обновляет предоставленную сущность в базе данных.

Описание

Эта функция выполняет процесс обновления сущности посредством вызова метода run, который предполагает выполнение различных ORM-операций, таких, как persist.

Свойства:
Название Тип По умолчанию
$entity object
Ошибки:
Тип Описание
\ORM\Exception\EntityNotManagedException Если сущность не управляется текущим менеджером сущностей.
\ORM\Exception\TransactionException|\Throwable Если транзакция не может быть завершена.
Возвращает:
Text Only
\ORM\Transaction\StateInterface

Возвращает состояние ORM-транзакции после обновления сущности.


compileSchema

Text Only
private compileSchema(\Registry  registry) : array
Краткое содержание

Генерирует и компилирует схему на основе переданного реестра и генераторов схем.

Описание

Этот метод обрабатывает пути моделей с использованием глобального объекта $MIGRATOR, находит классы и использует их для генерации комплексной схемы базы данных. Примечание: Метод использует глобальную переменную $MIGRATOR, поэтому убедитесь, что она правильно инициализирована до вызова метода.

Свойства:
Название Тип По умолчанию
$registry \Registry
Ошибки:
Тип Описание
\LogicException Если при компиляции схемы возникли логические ошибки.
\RuntimeException Если невозможно найти файлы моделей или извлечь классы.
Возвращает:
Text Only
array

Возвращает скомпилированную схему в виде массива.


generateManager

Text Only
private generateManager() : \DatabaseManager
Краткое содержание

Создает и возвращает экземпляр класса DatabaseManager.

Описание

Если объект orm_manager еще не создан, метод инициирует новый объект DatabaseManager на основе конфигурации ORM, полученной из метода generateOrmConfig.

Смотри так-же:
Ошибки:
Тип Описание
\RuntimeException Генерируется, если не удается подключить необходимый файл конфигурации базы данных.
\ConfigException Генерируется, если конфигурация базы данных содержит ошибки.
Возвращает:
Text Only
\DatabaseManager

Экземпляр менеджера базы данных, конфигурированного с помощью ORM.


generateOrm

Text Only
private generateOrm() : \ORM\ORM
Краткое содержание

Создает и возвращает экземпляр ORM (Object-Relational Mapper), используя предварительно скомпилированную схему, фабрику ORM, менеджер базы данных, а также генератор команд с поддержкой событий. Если ORM уже инициализирован, то возвращает ранее созданный объект.

Описание

Генерация ORM основывается на схеме, созданной методом {@see}, которой, в свою очередь, необходим зарегистрированный реестр сущностей. Управление базой данных осуществляется через метод {@see}.

Ошибки:
Тип Описание
\RuntimeException Если генерация схемы или конфигурации базы данных завершилась с ошибкой.
Возвращает:
Text Only
\ORM\ORM

Объект ORM (Object-Relational Mapper), предназначенный для взаимодействия с базой данных.


generateOrmConfig

Text Only
private generateOrmConfig() : \Config\DatabaseConfig
Краткое содержание

Генерирует и возвращает объект конфигурации базы данных ORM, если он ещё не создан.

Описание

Функция проверяет, был ли ранее инициализирован объект конфигурации ORM. Если объект отсутствует, производится его создание на основании глобальных настроек. Подключается файл конфигурации базы данных и выполняется подготовка данных, таких как разбиение хоста и порта, а также выборка префикса таблиц в зависимости от типа базы данных.

Возвращает:
Text Only
\Config\DatabaseConfig

Объект конфигурации базы данных ORM.