PHPackages                             beeralex/beeralex.core - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. beeralex/beeralex.core

ActiveBitrix-module

beeralex/beeralex.core
======================

My base Bitrix module

v1.2.04(1mo ago)0587MITPHPPHP &gt;=8.2

Since Oct 6Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/BkycHblu-6oPwuK/beeralex.core)[ Packagist](https://packagist.org/packages/beeralex/beeralex.core)[ RSS](/packages/beeralex-beeralexcore/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (10)Versions (36)Used By (7)

Модуль Core (beeralex.core)
===========================

[](#модуль-core-beeralexcore)

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

[![PHP](https://camo.githubusercontent.com/5fe05c705bf034839bda7651781e4d0a9d42f4a840478ca5e343873a0361bb89/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322b2d626c75652e737667)](https://www.php.net/)[![Bitrix](https://camo.githubusercontent.com/31b8ae1efca528e17ebbb3b69833009e581195da15c989971295acc03ab70bf2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4269747269782d32352e302e302b2d6f72616e67652e737667)](https://www.bitrix24.ru/)

Возможности
-----------

[](#возможности)

- 🎯 **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
```

### Активация

[](#активация)

В админке: `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()

[](#service)

Получение сервиса из DI-контейнера с поддержкой типизации:

```
// Автоматическое определение типа благодаря @template
$userService = service(UserService::class);
```

### firstNotEmpty()

[](#firstnotempty)

Возвращает первое непустое значение или значение по умолчанию:

```
$value = firstNotEmpty('default', $var1, $var2, $var3);
// Вернет первое непустое из $var1, $var2, $var3 или 'default'
```

### toFile()

[](#tofile)

Быстрое логирование данных в файл (для отладки):

```
toFile($data); // Логирует в log.log
toFile(['user_id' => 123, 'action' => 'login']); // Логирует массив
```

### coreLog()

[](#corelog)

Логирование через встроенную систему Bitrix:

```
coreLog('Сообщение об ошибке');
coreLog('Детальная информация', 10, true); // С трассировкой и аргументами
```

### isLighthouse()

[](#islighthouse)

Определяет, является ли запрос от Google Lighthouse:

```
if (isLighthouse()) {
    // Специальная логика для аудита производительности
}
```

### isImport()

[](#isimport)

Проверяет, идет ли обмен с 1С:

```
if (isImport()) {
    // Логика для импорта из 1С
}
```

### isCli()

[](#iscli)

Проверяет запущен ли скрипт из под cli

```
if (isCli()) {
    // Скрипт выполняется из под cli
}
```

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

[](#документация)

📚 **[Полная документация](./docs/README.md)**

- [Dependency Injection](./docs/dependency-injection.md) - DI контейнер
- [Репозитории](./docs/repositories.md) - Работа с данными
- [Сервисы](./docs/services.md) - Все сервисы модуля
- [Контроллеры](./docs/controllers.md) - HTTP контроллеры
- [Конфигурация](./docs/configuration.md) - Система настроек

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

[](#примеры-использования)

### Repository Pattern

[](#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

[](#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

[](#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)            │
