dimitrienkov0/laravel-modules
Composer 安装命令:
composer require dimitrienkov0/laravel-modules
包简介
Manifest-driven Laravel module loader and lifecycle toolkit.
README 文档
README
Manifest-driven runtime для модулей в Laravel 12/13.
dimitrienkov0/laravel-modules помогает Laravel-приложению находить модули в настроенных директориях, валидировать module.json, сортировать модули по зависимостям и загружать enabled-модули через предсказуемый loader pipeline.
Текущий v2.0 core покрывает runtime loading, feature values, production registry cache, lifecycle-команды (make:module, modules:install, modules:update, modules:remove, modules:enable, modules:disable, modules:list, modules:optimize, modules:optimize-clear) и module-aware генераторы: native make:* --module для 22 артефактов плюс архитектурные make:use-case/action/query/dto/vo (см. docs/cli.md). Опциональный MoonShine admin-UI управляет модулями из админки (docs/moonshine.md); установка/обновление через zip-upload в UI остаётся roadmap.
Quick Start
composer require dimitrienkov0/laravel-modules php artisan vendor:publish --tag=modules-config php artisan make:module blog
Проверка production cache:
php artisan modules:optimize
Требования
| Компонент | Версия |
|---|---|
| PHP | 8.3+ |
| Laravel | 12 / 13 |
| Optional admin bridge | MoonShine 4 |
| Optional routes bridge | Inertia 2 |
Возможности
- Manifest-first modules: immutable metadata и feature schema живут в
module.json; mutable state и feature values - вstate.json. - Dependency-aware registry:
meta.dependenciesсортируются и проверяются через Composer SemVer constraints. - Loader pipeline: 15 convention-based loaders загружают config, providers, migrations, routes, commands, policies, middleware и другие runtime paths.
- Runtime feature API:
FeatureRepositoryInterfaceчитает актуальныеsettings.valuesизstate.json. - Production cache:
modules:optimizeкеширует discovery вbootstrap/cache/modules.php, но не кеширует state и values. - Lifecycle toolkit: scaffold, install, update, remove, enable и disable работают через UseCase-классы с backup/rollback boundaries.
- Opt-in диагностическое логирование: off by default; включается через
MODULES_LOGGING=trueи пишет structured discovery/cache/pipeline/lifecycle события на выбранный канал хоста для field-diagnostics (docs/logging.md). - Optional bridges: MoonShine и Inertia активируются только при наличии соответствующих пакетов.
Минимальный модуль
php artisan make:module blog
Команда создаёт структуру модуля, module.json, ServiceProvider stub и приватный state.json.
Минимальный module.json после scaffold:
{
"schema_version": 1,
"meta": {
"name": "blog",
"display_name": "Blog",
"kind": "module",
"group": "content",
"version": "1.0.0"
},
"settings": {
"schema": {}
}
}
schema_version, meta.name, meta.kind и meta.version — обязательные; meta.group — необязательное (kebab-case группа для отображения в modules:list). Полный контракт — в docs/manifest.md.
storage/app/private/modules/blog/state.json:
{
"enabled": true,
"installed_at": "2026-05-23T14:12:00+00:00",
"updated_at": "2026-05-23T14:12:00+00:00",
"source": {
"kind": "local",
"installed_version": "1.0.0"
},
"settings": {
"values": {}
}
}
Feature Usage
Добавьте feature schema и values, как описано в docs/feature-toggles.md, затем читайте их через scoped repository:
<?php declare(strict_types=1); use DimitrienkoV\LaravelModules\Contracts\FeatureRepositoryInterface; final readonly class PostController { public function __construct( private FeatureRepositoryInterface $features, ) { } public function index(): void { $commentsEnabled = $this->features->getBool('blog', 'enable_comments'); } }
Документация
| Раздел | Описание |
|---|---|
| Getting Started | Установка и первая проверка |
| Module Structure | Поддерживаемые runtime-пути |
| Manifest | Контракт module.json |
| Configuration | Конфиг и routing options |
| MoonShine | Опциональный admin-UI управления модулями |
| Architecture | Registry, cache, loaders, lifecycle |
| Loaders | Справочник лоадеров и написание своего |
| Feature Toggles | Runtime settings API |
| Logging | Opt-in диагностический слой и каталог событий |
| Octane | Octane worker contract и reload-операционка |
| CLI | Реализованные Artisan-команды |
| Contributing | Quality gates и PR rules |
License
MIT
dimitrienkov0/laravel-modules 适用场景与选型建议
dimitrienkov0/laravel-modules 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 529 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 01 月 14 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 dimitrienkov0/laravel-modules 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 dimitrienkov0/laravel-modules 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 529
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2025-01-14