gigabait93 / laravel-extensions
Modular extensions framework for Laravel
Requires
- php: ^8.3
- illuminate/console: ^12.0
- illuminate/contracts: ^12.0
- illuminate/support: ^12.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.87
- orchestra/testbench: ^10.0
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.0
README
A powerful modular extension framework for Laravel 12+ that enables you to build scalable, maintainable applications with runtime discovery, activation control, and scaffolding utilities.
๐ Key Features
- 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.)
๐ Requirements
- PHP 8.3+
- Laravel 12.0+
๐ง Installation
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
๐ฏ Quick Start
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');
Basic Commands
# List all extensions php artisan extensions:list # Enable extension php artisan extensions:enable blog # Create new extension php artisan extensions:make Blog --type=module
๐ Documentation
For detailed documentation, visit https://gigabait93.github.io/laravel-extensions/.
๐งช Testing
composer test
composer cs-fix
composer phpstan
๐ค Contributing
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
๐ License
This package is open-sourced software licensed under the MIT license.
๐ Credits
๐ง Changelog
Please see CHANGELOG for more information on what has changed recently.
๐ก๏ธ Security
If you discover any security related issues, please email xgigabaitx@gmail.com instead of using the issue tracker.