PHPackages                             on1kel/hyperf-lighty - 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. [HTTP &amp; Networking](/categories/http)
4. /
5. on1kel/hyperf-lighty

ActiveLibrary[HTTP &amp; Networking](/categories/http)

on1kel/hyperf-lighty
====================

Набор инструментов для быстрого создания REST API на фреймворке Hyperf. Включает поддержку CRUD-операций, валидации, ресурсов, событий моделей и автоматическую генерацию документации OpenAPI.

v1.1.18(1mo ago)1881MITPHPPHP ^8.1

Since Nov 4Pushed 1mo agoCompare

[ Source](https://github.com/on1kel/hyperf-lighty)[ Packagist](https://packagist.org/packages/on1kel/hyperf-lighty)[ RSS](/packages/on1kel-hyperf-lighty/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (63)Versions (34)Used By (1)

Hyperf Lighty
=============

[](#hyperf-lighty)

> **Набор инструментов для быстрого и стандартизированного создания REST API на базе [Hyperf](https://hyperf.io/).**
> Предоставляет модульную архитектуру для CRUD-операций, валидации, событий моделей и генерации OpenAPI-документации.

---

Основные возможности
--------------------

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

- **Быстрая генерация CRUD-эндпоинтов** — автоматическое создание контроллеров, ресурсов и сервисов.
- **Единая архитектура слоёв** — строгая структура `Controller → Service → Model`.
- **Встроенная валидация и ресурсы** — использует стандартные механизмы `Hyperf\Validation` и `Hyperf\Resource`.
- **Асинхронные очереди и события** — поддержка `hyperf/async-queue` и гибкое управление событиями моделей.
- **Документация API из кода** — интеграция с [on1kel/hyperf-fly-docs](https://packagist.org/packages/on1kel/hyperf-fly-docs).
- **Расширяемость и переопределение** — возможность легко подключать собственные адаптеры, трейты и кастомные события.
- **Минимальная зависимость от фреймворка** — пакет можно использовать как библиотеку.

---

Установка
---------

[](#установка)

```
composer require on1kel/hyperf-lighty
```

> Требуется PHP 8.1+ и Hyperf 3.1+

---

Быстрый старт
-------------

[](#быстрый-старт)

### 1. Подключение конфигурации

[](#1-подключение-конфигурации)

После установки зарегистрируйте конфиг-провайдер в вашем `config/autoload/dependencies.php` (обычно добавляется автоматически):

```
return [
    \On1kel\HyperfLighty\ConfigProvider::class,
];
```

### 2. Публикация конфигураций

[](#2-публикация-конфигураций)

```
php bin/hyperf.php vendor:publish on1kel/hyperf-lighty
```

Будут созданы файлы:

- `config/autoload/model_events.php`
- `config/events/attendance.php` (пример событий моделей)

### 3. Создание CRUD-контроллера

[](#3-создание-crud-контроллера)

```
php bin/hyperf.php lighty:generate User V1_0
```

Будут автоматически сгенерированы:

- `App/Http/Controllers/UserController.php`
- `App/Services/UserService.php`
- `App/Models/User.php`
- ресурсы и валидации

### 4. Генерация файла `_ide_helper_models.php`

[](#4-генерация-файла-_ide_helper_modelsphp)

Для корректной работы **автоматической генерации OpenAPI-документации** пакет требует наличия актуального файла `_ide_helper_models.php`, содержащего метаданные всех моделей проекта.

#### Требования

[](#требования)

- Установленный пакет [`friendsofhyperf/ide-helper`](https://packagist.org/packages/friendsofhyperf/ide-helper)

#### Установка

[](#установка-1)

```
composer require --dev friendsofhyperf/ide-helper
```

#### Генерация моделей

[](#генерация-моделей)

После установки выполните команду:

```
php bin/hyperf.php ide-helper:model
```

В результате будет создан (или обновлён) файл:

```
_ide_helper_models.php

```

Этот файл обеспечивает:

- корректную работу IDE-подсказок (PhpStorm, VSCode и др.);
- автоматическую генерацию схем моделей для OpenAPI-документации;
- улучшенное автодополнение в коде при работе с моделями.

> **Совет:** рекомендуется добавить команду генерации в ваши dev-скрипты Composer, например:
>
> ```
> {
>   "scripts": {
>       "post-install-cmd": [
>           "@php bin/hyperf.php ide-helper:model"
>       ]
>   }
> }
> ```

---

Архитектура
-----------

[](#архитектура)

```
src/
 ├── Console/
 │   └── Commands/Generator/...       # Генераторы кода
 ├── Domain/
 │   └── Listeners/...                # Слушатели событий моделей
 ├── Http/
 │   ├── Controllers/...
 │   └── Resources/...
 ├── Services/
 │   ├── CRUD/...                     # CRUD-операции
 │   └── Encrypter.php                # Шифрование на Sodium
 └── OpenApi/...

```

### 4. Создание \_ide\_helper\_models.php

[](#4-создание-_ide_helper_modelsphp)

Для полноценной работы пакета необходимо установленный пакет friendsofhyperf/ide-helper и выполненная команда для полноценной работы автоматической генерации OpenApi документации

```
php bin/hyperf.php ide-helper:model
```

Ниже — **продуктовое, аккуратное описание**, без учебного тона и лишней техники, с акцентом на **зачем**, **что даёт**, **как использовать в проде**.

---

5. Разделение процессов по ролям (для запуска в отдельных контейнерах)
----------------------------------------------------------------------

[](#5-разделение-процессов-по-ролям-для-запуска-в-отдельных-контейнерах)

Пакет **`on1kel/hyperf-lighty`** вводит единый, декларативный механизм управления процессами Hyperf, предназначенный для **чёткого разделения ролей приложения** и безопасного деплоя в Docker/Kubernetes.

Цель:

- запускать разные группы процессов в **разных контейнерах** (`api`, `queue`, `cron`, и т.д.);
- исключить дублирование cron/consumer при горизонтальном масштабировании;
- сохранить **один Docker-образ** и управлять поведением через переменные окружения.

---

### Публикация конфигурации

[](#публикация-конфигурации)

Опубликуйте конфигурацию пакета:

```
php bin/hyperf.php vendor:publish on1kel/hyperf-lighty
```

После публикации конфиг пакета становится **единственным источником истины** для определения:

- какие процессы существуют в приложении;
- в каких ролях они могут запускаться.

---

### Замена стандартного `processes.php`

[](#замена-стандартного-processesphp)

Замените стандартный `config/autoload/processes.php` на версию, предоставляемую пакетом.

Этот файл:

- читает активные роли из `APP_ROLES`;
- фильтрует процессы на основе атрибутов ролей;
- возвращает **строго тот набор процессов**, который допустим для текущего контейнера.

```
