vyatka-it / grievous
Module manager
Package info
gitlab.vyatka-it.ru/laravel-packages/grievous-module-manager.git
pkg:composer/vyatka-it/grievous
dev-main
2026-06-02 15:06 UTC
Requires
- ext-fileinfo: *
- illuminate/console: ^13.0
- illuminate/support: ^13.0
- symfony/dependency-injection: ^8.0
- symfony/filesystem: ^8.0
- symfony/process: ^7.3
- wapmorgan/morphos: ^3.2
Requires (Dev)
- laravel/pint: dev-main
- pestphp/pest: ^3.8
This package is auto-updated.
Last update: 2026-06-02 15:06:21 UTC
README
* . * . * . * . * . *
. ██████╗ ██████╗ ██╗███████╗██╗ ██╗ ██████╗ ██╗ ██╗███████╗ .
* ██╔════╝ ██╔══██╗██║██╔════╝██║ ██║██╔═══██╗██║ ██║██╔════╝ *
. ██║ ███╗██████╔╝██║█████╗ ██║ ██║██║ ██║██║ ██║███████╗ .
* ██║ ██║██╔══██╗██║██╔══╝ ╚██╗ ██╔╝██║ ██║██║ ██║╚════██║ *
. ╚██████╔╝██║ ██║██║███████╗ ╚████╔╝ ╚██████╔╝╚██████╔╝███████║ .
* ╚═════╝ ╚═╝ ╚═╝╚═╝╚══════╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚══════╝ *
. * . * . * . * . * .
Менеджер модулей
Требования окружения
- Composer
- Laravel-компоненты
^13.0(illuminate/support,illuminate/console) - PHP-расширение
ext-fileinfo
Установка
composer require vyatka-it/grievous:@dev
Быстрый старт
php artisan griv:init
Команда публикует:
config/grievous.phpapp/Providers/ModuleServiceProvider.php
Добавьте в app\Providers\AppServiceProvider в метод register:
public function register(): void
{
//...
$this->app->register(ModuleServiceProvider::class);
}
Команды
Установить модуль
php artisan griv:install <module>
Примеры:
php artisan griv:install client
php artisan griv:install flash-call
Активировать модуль
php artisan griv:activate <module>
Пример:
php artisan griv:activate client
Деактивировать модуль
php artisan griv:deactivate <module>
Пример:
php artisan griv:deactivate client
Показать список модулей
Все опубликованные модули:
php artisan griv:list
Только активные модули:
php artisan griv:list active
Доступные модули
Сейчас в стандартном списке доступны:
clientflash-call
Гибкая конфигурация
После php artisan griv:init публикуется файл config/grievous.php. В нём можно менять:
modulesStruct(корневую директорию модулей, namespace, имя файла настроек, игнорируемые файлы/папки)targetDir(куда публикуются модули)vendorDir(где искать пакеты, если используется composer-транспорт)moduleList(класс enum со списком модулей)transport(Transport::GITилиTransport::COMPOSER)
Список модулей можно полностью подменить: укажите свой enum, реализующий контракт VyatkaIt\Grievous\Contracts\Enums\ModuleList.
<?php
use VyatkaIt\Grievous\Contracts\Enums\ModuleList;
use VyatkaIt\Grievous\DTOs\ModuleMeta;
enum CustomModule: string implements ModuleList
{
case BILLING = 'billing';
public function meta(): ModuleMeta
{
return new ModuleMeta(
package: 'acme/billing-module',
packageName: 'billing-module',
repoLink: 'https://git.example.com/acme/billing-module.git',
publishModuleName: 'Billing',
namespace: 'Acme\\Module\\Billing\\',
);
}
}
И затем подставьте его в config/grievous.php:
moduleList: CustomModule::class,
Типовой сценарий
php artisan griv:init
php artisan griv:install client
php artisan griv:activate client
php artisan griv:list active
Планы на будущее
- Одна команда для установки всего необходимого - приоритет
- UI-админка модулей
- Связки (готовые наборы для типовых проектов)
- Типизация модулей под разные задачи