beeralex/beeralex.core
最新稳定版本:v1.2.06
Composer 安装命令:
composer require beeralex/beeralex.core
包简介
My base Bitrix module
README 文档
README
Базовый модуль для разработки Bitrix-приложений с современным подходом к архитектуре. Предоставляет инструменты для работы с инфоблоками, репозиториями, сервисами, контроллерами и многое другое.
Возможности
- 🎯 Dependency Injection - Управление зависимостями через DI-контейнер
- 📦 Repository Pattern - Удобная работа с данными (инфоблоки, хайлоад-блоки)
- ⚙️ Сервисы - Готовые сервисы для типовых задач
- 🎮 Контроллеры - Базовые контроллеры с автовалидацией
- 🔧 Конфигурация - Типобезопасная система настроек
- 🚀 Vite Integration - Интеграция с современным фронтендом
Быстрый старт
Установка
Добавьте в composer.json настройку для установки в local/modules (или в bitrix, это на ваше усмотрение):
{
"extra": {
"installer-paths": {
"local/modules/{$name}/": ["type:bitrix-module"]
}
}
}
Установите пакет:
composer require beeralex/beeralex.core
Версии
до версии 1.2 минимальная версия php - 8.1
- ~1.1 - php 8.1
- ~1.2 - php 8.2
Активация
В админке: Marketplace -> Установленные решения -> Установить
И в /local/php_interface/init.php:
\Bitrix\Main\Loader::includeModule('beeralex.core');
Первый код
use Beeralex\Core\Repository\IblockRepository; use Beeralex\Core\Service\UserService; // Работа с репозиториями $newsRepo = new IblockRepository('news'); $news = $newsRepo->getList(['ACTIVE' => 'Y']); // Использование сервисов $userService = service(UserService::class); $password = $userService->generatePassword([2]);
Функции-хелперы
Модуль предоставляет глобальные функции-помощники для упрощения работы:
service()
Получение сервиса из DI-контейнера с поддержкой типизации:
// Автоматическое определение типа благодаря @template $userService = service(UserService::class);
firstNotEmpty()
Возвращает первое непустое значение или значение по умолчанию:
$value = firstNotEmpty('default', $var1, $var2, $var3); // Вернет первое непустое из $var1, $var2, $var3 или 'default'
toFile()
Быстрое логирование данных в файл (для отладки):
toFile($data); // Логирует в log.log toFile(['user_id' => 123, 'action' => 'login']); // Логирует массив
coreLog()
Логирование через встроенную систему Bitrix:
coreLog('Сообщение об ошибке'); coreLog('Детальная информация', 10, true); // С трассировкой и аргументами
isLighthouse()
Определяет, является ли запрос от Google Lighthouse:
if (isLighthouse()) { // Специальная логика для аудита производительности }
isImport()
Проверяет, идет ли обмен с 1С:
if (isImport()) { // Логика для импорта из 1С }
isCli()
Проверяет запущен ли скрипт из под cli
if (isCli()) { // Скрипт выполняется из под cli }
Документация
- Dependency Injection - DI контейнер
- Репозитории - Работа с данными
- Сервисы - Все сервисы модуля
- Контроллеры - HTTP контроллеры
- Конфигурация - Система настроек
Примеры использования
Repository Pattern
use Beeralex\Core\Repository\IblockRepository; $newsRepo = new IblockRepository('news'); // Получение данных с фильтром и сортировкой $items = $newsRepo->getList( ['ACTIVE' => 'Y'], [ 'select' => ['ID', 'NAME', 'DATE_CREATE'], 'order' => ['DATE_CREATE' => 'DESC'], 'limit' => 10 ] ); // Добавление элемента $id = $newsRepo->add([ 'NAME' => 'Новость', 'ACTIVE' => 'Y', 'PROPERTY_VALUES' => [ 'CATEGORY' => 5 ] ]);
Dependency Injection
use Beeralex\Core\Service\FileService; use Beeralex\Core\Service\PaginationService; // Получение сервисов из DI-контейнера $fileService = service(FileService::class); $paginationService = service(PaginationService::class); // Использование $fileService->includeFile('catalog.index', ['productId' => 123]); $pages = $paginationService->getPages(1, 10);
API Controller
use Beeralex\Core\Http\Controllers\ApiController; class ProductController extends ApiController { public function listAction(int $limit = 10): array { $repository = new IblockRepository('catalog'); return [ 'items' => $repository->getList( ['ACTIVE' => 'Y'], ['limit' => $limit] ) ]; } }
Архитектура
┌─────────────────────────────────┐
│ Controllers (HTTP) │ <- Обработка запросов
├─────────────────────────────────┤
│ Services (Business Logic) │ <- Бизнес-логика
├─────────────────────────────────┤
│ Repositories (Data Access) │ <- Доступ к данным
├─────────────────────────────────┤
│ Models/Entities │ <- Данные
└─────────────────────────────────┘
Требования
- PHP >= 8.2
- 1С-Битрикс >= 25.0.0 - рекомендуемая версия поддерживающая php 8.2
- Composer
установка модуля пройдет без ошибок, даже если версия битрикса ниже требуемой, но могут быть не стабильности в работе
Лицензия
MIT
Автор
Alexandr Belotsitsko (sanyabelyy020@gmail.com)
统计信息
- 总下载量: 62
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 7
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-06