beinsystems/essentials

Essential components for my projects including error handler, database utilities, and Telegram bot integration

Installs: 74

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Forks: 0

pkg:composer/beinsystems/essentials

v0.8.1 2025-11-24 19:11 UTC

This package is not auto-updated.

Last update: 2025-12-22 15:38:51 UTC


README

Пакет с основными компонентами для проектов BeinSystems, включающий обработчик ошибок, утилиты для работы с базой данных и интеграцию с Telegram ботом.

Установка

composer require beinsystems/essentials

Автоматическая настройка

После установки пакета через Composer, все компоненты автоматически подключаются и настраиваются:

  • Обработчик ошибок - автоматически регистрируется и обрабатывает все ошибки PHP
  • Утилиты базы данных - класс Database для работы с базой данных
  • Telegram бот - функции для отправки уведомлений в Telegram
  • Функция stop() - для корректного завершения скриптов

Использование

Просто подключите автозагрузчик Composer в вашем проекте:

<?php
require_once 'vendor/autoload.php';

// Обработчик ошибок уже активен!
// Все ошибки будут автоматически логироваться и отправляться в Telegram

// Ваш код...

Конфигурация

Убедитесь, что в вашем .env файле настроены следующие переменные:

# Настройки приложения
DEBUG_MODE=false
ADMIN_EMAIL=your@email.com

# Настройки для генератора Snowflake
DATACENTER_ID=1
WORKER_ID=1

# Настройки для обработки ошибок
ERROR_REPORTING=E_ALL
DISPLAY_ERRORS=1
LOG_ERRORS=1

# Настройки логирования
LOG_LEVEL=debug
LOG_FILE_PATH=logs/app.log
LOG_TO_FILE=1                    # 1 - включить логирование в файл, 0 - выключить
LOG_TO_TELEGRAM=1                # 1 - включить логирование в Telegram, 0 - выключить
LOG_DATE_FORMAT=Y-m-d H:i:s      # Формат даты для логов

# Database Configuration
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_username
DB_PASSWORD=your_password

# Telegram Integration
TG_BOT_TOKEN=your_bot_token
TG_CHAT_ID=your_chat_id

# Настройки RabbitMQ
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_VHOST=/

Компоненты

ErrorHandler

Автоматически обрабатывает все ошибки PHP и отправляет уведомления в Telegram.

Настройки логирования:

  • LOG_TO_FILE - включить/выключить логирование ошибок в файл
  • LOG_TO_TELEGRAM - включить/выключить отправку ошибок в Telegram
  • LOG_FILE_PATH - путь к файлу логов
  • LOG_DATE_FORMAT - формат даты для записей в логах

Пример использования:

// Логирование происходит автоматически при возникновении ошибок
// Для ручного логирования используйте:
log_to_file("Ваше сообщение");

Database

Класс для работы с базой данных с встроенным логированием SQL-запросов.

Управление логированием:

$db = new Database($dsn, $username, $password);

// Включить/выключить логирование в файл
$db->enableFileLogging();
$db->disableFileLogging();

// Включить/выключить логирование в Telegram
$db->enableTelegramLogging();
$db->disableTelegramLogging();

// Проверить статус логирования
if ($db->isFileLoggingEnabled()) {
    // ...
}

Примечание: По умолчанию настройки логирования берутся из переменных окружения LOG_TO_FILE и LOG_TO_TELEGRAM.

Telegram Bot

Функции для отправки сообщений в Telegram.

Доступные функции:

// Отправка отформатированного сообщения
SendTlgrmReport($text);

// Отправка объекта/массива (автоматически форматируется в JSON)
SendTG($object);

Настройки:

  • TG_BOT_TOKEN - токен вашего Telegram бота
  • TG_CHAT_ID - ID чата для отправки сообщений

Stop Function

Функция для корректного завершения скриптов с кодами ошибок.

Использование:

// Завершить с ошибкой
stop(1001, 400, "Неверные параметры запроса");

// Завершить успешно
success($data, "Операция выполнена успешно");