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 management for Laravel Starter: track module versions, handle migrations and updates, resolve dependencies, publish/enable/disable modules, scaffold/build modules, diff changes, and generate module tests via artisan commands.

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.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle