LaravelPackages.net
Acme Inc.
Toggle sidebar
nasirkhan/module-manager

Module Manager & Generator for Laravel Starter Kit (https://github.com/nasirkhan/laravel-starter)

46.711
10
v7.0.0
About nasirkhan/module-manager

nasirkhan/module-manager is a Laravel package for module manager & generator for laravel starter kit (https://github.com/nasirkhan/laravel-starter). It currently has 10 GitHub stars and 46.711 downloads on Packagist (latest version v7.0.0). Install it with composer require nasirkhan/module-manager. Discover more Laravel packages by nasirkhan or browse all Laravel packages to compare alternatives.

Last updated

Module Manager for Laravel Starter

Module Manager - A powerful module management package 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.

Latest Version on Packagist Total Downloads StyleCI

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. 10 for core deps, 5 for UI, 0 for 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 | β€” |

Comments