nasirkhan/module-manager
Module Manager for Laravel Starter
Module Manager is a powerful module management package for Laravel Starter, providing version tracking, migration management, dependency resolution, and comprehensive module lifecycle management.
Requirements
- PHP ^8.3
- Laravel ^12.0 || ^13.0
📦 Installation
composer require nasirkhan/module-manager
Quick Start
php artisan module:status # View all modules and their status
php artisan module:dependencies # Check module dependencies
php artisan migrate # Run pending migrations
Available Commands
Core
| Command | Description |
|---|---|
module:status [module] |
View module status, versions, and dependencies |
module:dependencies [module] |
Check dependency satisfaction |
module:publish {module} |
Publish a module to Modules/ for customization |
module:diff {module} [--detailed] |
Compare package version with published version |
module:enable {module} |
Enable a module |
module:disable {module} |
Disable a module |
module:build {module} |
Scaffold a new module |
module:remove {module} |
Remove a module |
module:make-test {module} {name} [--unit] |
Generate a test class for a module |
module:help [topic] |
Show command reference and workflows |
Migration Management
| Command | Description |
|---|---|
module:track-migrations [module] [--force] |
Record current migration state as baseline |
module:detect-updates [module] |
Detect new migrations after a composer update |
module:check-migrations [module] |
Check for unpublished migrations |
Module Structure
Modules/Post/
├── module.json
├── Config/
├── Console/
├── database/
│ ├── migrations/
│ ├── seeders/
│ └── factories/
├── Http/
│ ├── Controllers/
│ ├── Requests/
│ └── Middleware/
├── Livewire/
├── Models/
├── Providers/
├── Resources/
├── routes/
├── lang/
├── Tests/
│ ├── Feature/
│ └── Unit/
└── Resources/
└── views/
Module Configuration (module.json)
{
"name": "Post",
"alias": "post",
"description": "Blog post management module with categories, tags, and moderation",
"version": "1.0.0",
"keywords": ["post", "blog", "article", "content"],
"priority": 0,
"requires": ["Category", "Tag"]
}
priority: Load order — higher values load first (e.g.10for core deps,5for UI,0for content)requires: Module names this module depends on
Publishing Module Assets
php artisan vendor:publish --tag=post-migrations
php artisan vendor:publish --tag=post-views
php artisan vendor:publish --tag=post-config
php artisan vendor:publish --tag=post-lang
Namespace Architecture
| Location | Namespace |
|---|---|
vendor/nasirkhan/module-manager/src/Modules/ |
Nasirkhan\ModuleManager\Modules\{Module}\... |
Modules/ (published) |
Modules\{Module}\... |
When publishing a module (module:publish), all namespaces are rewritten automatically. After publishing, run:
composer dump-autoload
php artisan config:clear
Troubleshooting
Module not showing in status:
composer dump-autoload
php artisan cache:clear && php artisan config:clear
Migrations not detected after update:
php artisan module:track-migrations --force
php artisan module:detect-updates
php artisan vendor:publish --tag=post-migrations
php artisan migrate
Programmatic API
ModuleVersion
use Nasirkhan\ModuleManager\Services\ModuleVersion;
$service = app(ModuleVersion::class);
$service->getVersion('Post'); // "1.0.0"
$service->getDependencies('Post'); // ['Category', 'Tag']
$service->dependenciesSatisfied('Post'); // bool
$service->getModulesByPriority(); // ordered module list
MigrationTracker
use Nasirkhan\ModuleManager\Services\MigrationTracker;
$tracker = app(MigrationTracker::class);
$tracker->trackModuleMigrations('Post', '1.0.0');
$tracker->getNewMigrationsSinceLastCheck('Post');
$tracker->getPendingMigrations('Post');
$tracker->hasUpdates('Post');
Contributing
See CONTRIBUTING.md for development guidelines.
License
MIT License. See LICENSE for details.
Available Modules
| Module | Version | Description | Dependencies |
|---|---|---|---|
| Post | 1.0.0 | Blog post management with moderation | Category, Tag |
| Category | 1.0.0 | Category management with nested sets | — |
| Tag | 1.0.0 | Polymorphic tagging system | — |
| Menu | 1.0.0 | Dynamic menu with nested items | — |
Related Packages
nahid-ferdous/laravel-module-generator
Speeds up Laravel development by automating repetitive tasks. This package helps...
3,518
2
code generator
controller generator
crud generator
laravel
laravel artisan
laravel automation
laravel development tools
laravel module
laravel package
laravel scaffolding
migration generator
model generator
module generator
php code generation
request generator
resource generator
scaffolding
service layer
yaml
erirk/paypalpayment
laravel-paypalpayment is simple package help you process direct credit card paym...
0