Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Module Manager Laravel Package

nasirkhan/module-manager

Laravel module manager for Laravel Starter with version tracking, migration baselines/updates, dependency checks, publish/diff workflows, and enable/disable lifecycle commands. Includes scaffolding, removal, and test generation via Artisan.

View on GitHub
Deep Wiki
Context7

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.

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
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport