Skip to content

GIGABAIT93/laravel-extensions

Repository files navigation

Laravel Extensions

CI Security Latest Stable Version Total Downloads License PHP Version

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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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 [email protected] instead of using the issue tracker.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages