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