A powerful modular extension framework for Laravel 12+ that enables you to build scalable, maintainable applications with runtime discovery, activation control, and scaffolding utilities.
- Runtime Discovery: Automatically discover and load extensions from configured directories
- Activation Management: Enable/disable extensions with dependency checks and protection mechanisms
- Flexible Storage: Choose between file-based or database activators for persistence
- Rich API: Manage extensions through facade, HTTP API, and Artisan commands
- Async Operations: Queue enable/disable/install operations with status monitoring
- Code Generation: Scaffold new extensions with customizable stubs
- Event System: Comprehensive event dispatching for extension lifecycle
- Multi-type Support: Support for different extension types (Modules, Themes, etc.)
- PHP 8.3+
- Laravel 12.0+
Install the package via Composer:
composer require gigabait93/laravel-extensions
Publish the configuration file:
php artisan vendor:publish --tag=extensions-config
If using database activator, publish and run migrations:
php artisan vendor:publish --tag=extensions-migrations
php artisan migrate
Discover existing extensions:
php artisan extensions:discover
use Gigabait93\Extensions\Facades\Extensions;
// Get all extensions
$extensions = Extensions::all();
// Enable extension
Extensions::enable('blog');
// Disable extension
Extensions::disable('blog');
// Install dependencies and enable
Extensions::installAndEnable('blog');
# List all extensions
php artisan extensions:list
# Enable extension
php artisan extensions:enable blog
# Create new extension
php artisan extensions:make Blog --type=module
For detailed documentation, visit https://gigabait93.github.io/laravel-extensions/.
composer test
composer cs-fix
composer phpstan
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This package is open-sourced software licensed under the MIT license.
Please see CHANGELOG for more information on what has changed recently.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.