руководство
Подготовка к использованию
Чтобы начать пользоваться классом, необходимо для начала прописать настройки соединения с базой данных.
Сперва, настроим систему журналирования ошибок. Она помогает отлавливать ошибки и предупреждения, возникшие в работе с СУБД. Если она нам не нужна, то можно пропустить этот шаг, а в конфигурации параметр logConfig оставить равным null.
$logConfig = new DBLogConfig(
# Внешняя система журналирования, реализующая интерфейс ILogger.
# Если null, будет создаваться класс Logger из PHP COMPONENTS PACK.
externalLogger: null,
# Уровень журналирования.
# Определяет, какие сообщения будут записываться в лог, а какие нет.
# Располагаются по убыванию важности: DEBUG < INFO < WARNING < ERROR.
# Каждый следующий уровень исключает все сообщения, нижестоящего уровня.
# Например, при уровне WARNING будут записаны только сообщения типа ERROR и WARNING.
level: MessageType::DEBUG,
# Путь к файлу журнала. Если `null`, то вывод будет осуществляться в консоль.
fileName: 'db.log',
# Максимальный размер файла журнала в байтах. При превышении этого значения файл будет перезаписан.
# Если 0, то размер файла не ограничен.
# При выводе в консоль этот параметр игнорируется.
maxBytes: 1024 * 1024 * 5,
# Максимальное количество копий файлов журнала. При превышении этого значения файлы будут удалены.
# При выводе в консоль этот параметр игнорируется.
backupCount: 5,
# Количество сообщений, которые будут сохранены в памяти перед записью в файл.
# При выводе в консоль этот параметр игнорируется.
flushAfter: 30
);
Далее, создадим класс DBConfig с конфигурацией подключения к базе данных:
$db_config = new DBConfig(
# Драйвер СУБД.
driver: DBDriver::PostgreSQL,
# Сервер СУБД.
host: 'localhost',
# Порт подключения к серверу СУБД.
port: 5432,
# Имя базы данных.
name: 'my_database',
# Имя пользователя базы данных.
userName: 'admin',
# Пароль пользователя базы данных.
password: 'secret_password',
# Конфигурация системы журналирования.
logConfig: $logConfig,
# Язык сообщений об ошибках. Может быть 'ru' или 'en'. По умолчанию 'ru'.
language: 'ru',
# Завершать ли транзакцию при закрытии соединения с СУБД.
commitOnClose: true
);
Первым параметром идёт драйвер СУБД, представленный перечислением DBDriver (в данном случае PostgreSQL), затем сервер БД, порт, её имя, пользователь, пароль, конфигурация системы журналирования и язык сообщений об ошибках, а также настройка завершения транзакции при закрытии соединения.
Итак, настройки созданы, время создать сам класс Database:
use goodboyalex\php_db_components_pack\classes\Database;
$onException = fn (string $message) => print $message;
$db = new Database($db_config, $onException);