beeralex/beeralex.core 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

beeralex/beeralex.core

最新稳定版本:v1.2.06

Composer 安装命令:

composer require beeralex/beeralex.core

包简介

My base Bitrix module

README 文档

README

Базовый модуль для разработки Bitrix-приложений с современным подходом к архитектуре. Предоставляет инструменты для работы с инфоблоками, репозиториями, сервисами, контроллерами и многое другое.

PHP 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
}

Документация

📚 Полная документация

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

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

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-10-06

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固