Класс: MhDB
Документация по плагину класс: mhdb для DLE.
Краткое содержание:
Класс для работы с базой данных
Свойства
- private $em
- private $orm
- private $orm_config
- private $orm_manager
- private $user_db
Методы
- public __construct()
- public count()
- public create()
- public delete()
- public get()
- public getAll()
- public getManager()
- public getOrm()
- public paginate()
- public query()
- public repository()
- public run()
- public setManager()
- public update()
- private compileSchema()
- private generateManager()
- private generateOrm()
- private generateOrmConfig()
Подробности
- Путь: 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
public __construct(bool user_db = false) : mixedКраткое содержание
Конструктор класса MhDB.
Описание
Настраивает базу данных, инициализирует ORM, а также управляет объектом EntityManager.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $user_db | bool | false |
Ошибки:
| Тип | Описание |
|---|---|
| \Cycle\ORM\Exception\SchemaException | Если при генерации ORM произошла ошибка в схеме базы данных. |
| \Cycle\Migrations\Exception\MigrationException | Если миграции не могут быть выполнены. |
| \RuntimeException | Если не удается нормально настроить конфигурацию подключения к базе данных. |
Возвращает:
mixedcount
public count(object|string entity) : intКраткое содержание
Подсчитывает количество записей для указанной сущности.
Описание
Эта функция использует репозиторий, связанный с сущностью, для выполнения запроса на подсчет количества записей.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $entity | object|string |
Возвращает:
intКоличество записей в репозитории, связанных с данной сущностью.
create
public create(object entity) : \ORM\Transaction\StateInterfaceКраткое содержание
Обновляет предоставленную сущность в базе данных.
Описание
Эта функция выполняет процесс обновления сущности посредством вызова метода run,
который предполагает выполнение различных ORM-операций, таких как persist.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $entity | object |
Ошибки:
| Тип | Описание |
|---|---|
| \ORM\Exception\EntityNotManagedException | Если сущность не управляется текущим менеджером сущностей. |
| \ORM\Exception\TransactionException|\Throwable | Если транзакция не может быть завершена. |
Возвращает:
\ORM\Transaction\StateInterfaceВозвращает состояние ORM-транзакции после обновления сущности.
delete
public delete(object|string entity, int pk) : \ORM\Transaction\StateInterfaceКраткое содержание
Удаляет сущность на основе переданного объекта и первичного ключа.
Описание
Эта функция выполняет следующие шаги:
- Извлекает объект сущности из базы данных с помощью метода
get. - Передает этот объект менеджеру сущностей для удаления.
- Выполняет транзакцию удаления.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $entity | object|string | |
| $pk | int |
Ошибки:
| Тип | Описание |
|---|---|
| \Throwable | При любой ошибке в ORM (например, сбой во время удаления). |
Возвращает:
\ORM\Transaction\StateInterfaceВозвращает состояние завершенной транзакции удаления.
get
public get(object|string entity, int pk) : object|nullКраткое содержание
Получает сущность из хранилища данных по её первичному ключу.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $entity | object|string | |
| $pk | int |
Возвращает:
object|nullВозвращает найденный объект сущности или null, если объект с заданным первичным ключом отсутствует.
getAll
public getAll(object|string entity) : arrayКраткое содержание
Получает все записи для указанной сущности из хранилища.
Описание
Этот метод использует репозиторий, ассоциированный с указанной сущностью, для получения всех записей из базы данных.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $entity | object|string |
Возвращает:
arrayМассив объектов сущности, извлеченных из базы данных. Если данных в хранилище нет, возвращается пустой массив.
getManager
public getManager() : \Cycle\ORM\EntityManagerВозвращает:
\Cycle\ORM\EntityManagergetOrm
public getOrm() : \ORM\ORMКраткое содержание
Возвращает экземпляр ORM, создавая его при необходимости.
Описание
Данный метод вызывает generateOrm, который инициализирует ORM,
используя настраиваемые зависимости, такие как Schema, Factory, Container и CommandGenerator.
Повторные вызовы возвращают уже созданный экземпляр ORM.
Ошибки:
| Тип | Описание |
|---|---|
| \RuntimeException | Если при генерации ORM возникли ошибки. |
Возвращает:
\ORM\ORMЭкземпляр ORM.
paginate
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 |
Возвращает:
\ORM\SelectНастроенный объект Select, содержащий отсортированные и пагинированные данные.
query
public query(string sql, array params = []) : \StatementInterfaceКраткое содержание
Выполняет SQL-запрос с указанными параметрами и возвращает результат.
Описание
Метод использует объект DatabaseManager для получения соединения с базой данных и дальнейшего выполнения SQL-запроса. Позволяет передавать параметры для безопасного выполнения подготовленных запросов.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $sql | string | |
| $params | array | [] |
Ошибки:
| Тип | Описание |
|---|---|
| \InvalidArgumentException | Может бросить исключение при передаче некорректного SQL-запроса. |
| \RuntimeException | Может бросить исключение, если соединение с базой данных невозможно. |
Возвращает:
\StatementInterfaceРезультирующий объект, представляющий результат выполнения запроса.
repository
public repository(object|string entity) : \ORM\RepositoryInterfaceКраткое содержание
Возвращает репозиторий для указанной сущности или класса сущности.
Описание
Эта функция принимает объект сущности или строку, представляющую имя класса сущности, определяет их имя класса и возвращает соответствующий репозиторий, используя ORM.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $entity | object | string |
Ошибки:
| Тип | Описание |
|---|---|
| \ORM\Exception\RepositoryNotFoundException | Если репозиторий для указанной сущности не найден. |
Возвращает:
\ORM\RepositoryInterfaceИнтерфейс репозитория для работы с указанной сущностью.
run
public run(object entity) : \ORM\Transaction\StateInterfaceКраткое содержание
Выполняет сохранение сущности и возвращает состояние транзакции.
Описание
Этот метод обрабатывает сохранение переданного объекта сущности с использованием
связанного EntityManager. Завершает операцию методом run(), который выполняет
транзакцию и возвращает её результирующее состояние.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $entity | object |
Ошибки:
| Тип | Описание |
|---|---|
| \RuntimeException|\Throwable | Исключение выбрасывается, если EntityManager не был корректно инициализирован, что приводит к ошибке сохранения. |
Возвращает:
\ORM\Transaction\StateInterfaceРезультирующее состояние транзакции после сохранения сущности.
setManager
public setManager() : voidКраткое содержание
Устанавливает экземпляр EntityManager на основе текущего ORM.
Описание
Метод инициализирует объект EntityManager (менеджера для управления сущностями) на основе существующего объекта ORM (Object-Relational Mapping). Если ORM не был предварительно сконфигурирован, это может привести к выбросу ошибок в процессе создания EntityManager.
Ошибки:
| Тип | Описание |
|---|---|
| \RuntimeException | Если объект ORM не был предварительно создан. |
Возвращает:
voidupdate
public update(object entity) : \ORM\Transaction\StateInterfaceКраткое содержание
Обновляет предоставленную сущность в базе данных.
Описание
Эта функция выполняет процесс обновления сущности посредством вызова метода run,
который предполагает выполнение различных ORM-операций, таких, как persist.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $entity | object |
Ошибки:
| Тип | Описание |
|---|---|
| \ORM\Exception\EntityNotManagedException | Если сущность не управляется текущим менеджером сущностей. |
| \ORM\Exception\TransactionException|\Throwable | Если транзакция не может быть завершена. |
Возвращает:
\ORM\Transaction\StateInterfaceВозвращает состояние ORM-транзакции после обновления сущности.
compileSchema
private compileSchema(\Registry registry) : arrayКраткое содержание
Генерирует и компилирует схему на основе переданного реестра и генераторов схем.
Описание
Этот метод обрабатывает пути моделей с использованием глобального объекта $MIGRATOR,
находит классы и использует их для генерации комплексной схемы базы данных.
Примечание: Метод использует глобальную переменную $MIGRATOR, поэтому убедитесь,
что она правильно инициализирована до вызова метода.
Свойства:
| Название | Тип | По умолчанию |
|---|---|---|
| $registry | \Registry |
Ошибки:
| Тип | Описание |
|---|---|
| \LogicException | Если при компиляции схемы возникли логические ошибки. |
| \RuntimeException | Если невозможно найти файлы моделей или извлечь классы. |
Возвращает:
arrayВозвращает скомпилированную схему в виде массива.
generateManager
private generateManager() : \DatabaseManagerКраткое содержание
Создает и возвращает экземпляр класса DatabaseManager.
Описание
Если объект orm_manager еще не создан, метод инициирует новый объект
DatabaseManager на основе конфигурации ORM, полученной из метода generateOrmConfig.
Смотри так-же:
Ошибки:
| Тип | Описание |
|---|---|
| \RuntimeException | Генерируется, если не удается подключить необходимый файл конфигурации базы данных. |
| \ConfigException | Генерируется, если конфигурация базы данных содержит ошибки. |
Возвращает:
\DatabaseManagerЭкземпляр менеджера базы данных, конфигурированного с помощью ORM.
generateOrm
private generateOrm() : \ORM\ORMКраткое содержание
Создает и возвращает экземпляр ORM (Object-Relational Mapper), используя предварительно скомпилированную схему, фабрику ORM, менеджер базы данных, а также генератор команд с поддержкой событий. Если ORM уже инициализирован, то возвращает ранее созданный объект.
Описание
Генерация ORM основывается на схеме, созданной методом {@see}, которой, в свою очередь, необходим зарегистрированный реестр сущностей. Управление базой данных осуществляется через метод {@see}.
Ошибки:
| Тип | Описание |
|---|---|
| \RuntimeException | Если генерация схемы или конфигурации базы данных завершилась с ошибкой. |
Возвращает:
\ORM\ORMОбъект ORM (Object-Relational Mapper), предназначенный для взаимодействия с базой данных.
generateOrmConfig
private generateOrmConfig() : \Config\DatabaseConfigКраткое содержание
Генерирует и возвращает объект конфигурации базы данных ORM, если он ещё не создан.
Описание
Функция проверяет, был ли ранее инициализирован объект конфигурации ORM. Если объект отсутствует, производится его создание на основании глобальных настроек. Подключается файл конфигурации базы данных и выполняется подготовка данных, таких как разбиение хоста и порта, а также выборка префикса таблиц в зависимости от типа базы данных.
Возвращает:
\Config\DatabaseConfigОбъект конфигурации базы данных ORM.