on1kel / hyperf-lighty
Набор инструментов для быстрого создания REST API на фреймворке Hyperf. Включает поддержку CRUD-операций, валидации, ресурсов, событий моделей и автоматическую генерацию документации OpenAPI.
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/on1kel/hyperf-lighty
Requires
- php: ^8.1
- ext-json: *
- ext-sodium: *
- hyperf/async-queue: ^3.1
- hyperf/command: ^3.1
- hyperf/database: ^3.1
- hyperf/db-connection: ^3.1
- hyperf/event: ^3.1
- hyperf/http-message: ^3.1
- hyperf/http-server: ^3.1
- hyperf/resource: ^3.1
- hyperf/support: ^3.1
- hyperf/validation: ^3.1
- khazhinov/php-support: ^1.1
- on1kel/hyperf-fly-docs: ^1.0
- psr/simple-cache: ^3.0
- ramsey/uuid: ^4.9
- spatie/data-transfer-object: ^3.8
Requires (Dev)
- cweagans/composer-patches: ^1.7
- friendsofphp/php-cs-fixer: ^3.64
- hyperf/framework: ^3.0
- phpstan/phpstan: ^2.1
Suggests
- friendsofhyperf/ide-helper: Рекомендуется для автогенерации IDE подсказок и корректной работы автоматической документации OpenApi
README
Набор инструментов для быстрого и стандартизированного создания REST API на базе Hyperf.
Предоставляет модульную архитектуру для CRUD-операций, валидации, событий моделей и генерации OpenAPI-документации.
Основные возможности
- Быстрая генерация CRUD-эндпоинтов — автоматическое создание контроллеров, ресурсов и сервисов.
- Единая архитектура слоёв — строгая структура
Controller → Service → Model. - Встроенная валидация и ресурсы — использует стандартные механизмы
Hyperf\ValidationиHyperf\Resource. - Асинхронные очереди и события — поддержка
hyperf/async-queueи гибкое управление событиями моделей. - Документация API из кода — интеграция с on1kel/hyperf-fly-docs.
- Расширяемость и переопределение — возможность легко подключать собственные адаптеры, трейты и кастомные события.
- Минимальная зависимость от фреймворка — пакет можно использовать как библиотеку.
Установка
composer require on1kel/hyperf-lighty
Требуется PHP 8.1+ и Hyperf 3.1+
Быстрый старт
1. Подключение конфигурации
После установки зарегистрируйте конфиг-провайдер в вашем config/autoload/dependencies.php (обычно добавляется автоматически):
return [ \On1kel\HyperfLighty\ConfigProvider::class, ];
2. Публикация конфигураций
php bin/hyperf.php vendor:publish on1kel/hyperf-lighty
Будут созданы файлы:
config/autoload/model_events.phpconfig/events/attendance.php(пример событий моделей)
3. Создание CRUD-контроллера
php bin/hyperf.php lighty:generate User V1_0
Будут автоматически сгенерированы:
App/Http/Controllers/UserController.phpApp/Services/UserService.phpApp/Models/User.php- ресурсы и валидации
4. Генерация файла _ide_helper_models.php
Для корректной работы автоматической генерации OpenAPI-документации пакет требует наличия актуального файла _ide_helper_models.php, содержащего метаданные всех моделей проекта.
Требования
- Установленный пакет
friendsofhyperf/ide-helper
Установка
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
Для полноценной работы пакета необходимо установленный пакет friendsofhyperf/ide-helper и выполненная команда для полноценной работы автоматической генерации OpenApi документации
php bin/hyperf.php ide-helper:model
Безопасность
- Используется расширение
ext-sodiumдля безопасного шифрования (sodium_crypto_secretbox). - Все ключи и токены рекомендуется хранить в
.env. - Поддержка строгой типизации (
declare(strict_types=1)).
Лицензия
См. файл LICENSE для подробностей.