accelade / plugins
Complete plugin system with generator, management, and auto-discovery for Accelade ecosystem
Fund package maintenance!
fadymondy
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/accelade/plugins
Requires
- php: ^8.2|^8.3|^8.4
- accelade/accelade: ^1.0
- illuminate/console: ^11.0|^12.0
- illuminate/filesystem: ^11.0|^12.0
- illuminate/support: ^11.0|^12.0
Requires (Dev)
- larastan/larastan: ^2.9|^3.0
- laravel/pint: ^1.18
- orchestra/testbench: ^9.0|^10.0
- pestphp/pest: ^3.0|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
- phpstan/extension-installer: ^1.3|^2.0
Suggests
- laravel/mcp: Required for MCP server support (Claude Code integration)
This package is auto-updated.
Last update: 2026-01-19 13:08:12 UTC
README
Complete plugin system with generator, management, and auto-discovery for the Accelade ecosystem.
Features
- Plugin Generator: Create new plugin packages with a single command
- Component Generators: Generate models, controllers, migrations, and 15+ component types
- Auto-Discovery: Automatically discover and register plugins from vendor/ and packages/
- Lifecycle Management: Enable/disable plugins, manage dependencies
- Full Suite: Testing, GitHub workflows, documentation structure
- Docs Integration: Automatic documentation registration with Accelade docs system
Installation
composer require accelade/plugins
Quick Start
Create a Plugin
php artisan accelade:plugin MyAwesomePlugin
Follow the interactive prompts to customize your plugin with:
- Plugin class (Accelade integration)
- Database migrations
- Blade views and components
- Web and API routes
- CSS (Tailwind v4) and JS (TypeScript + Vite) assets
- Language files (i18n)
- GitHub workflows and issue templates
- Documentation structure
Generate Components
php artisan accelade:make model User --plugin=my-plugin php artisan accelade:make controller User --plugin=my-plugin php artisan accelade:make migration CreateUsersTable --plugin=my-plugin
Available Component Types
| Type | Description |
|---|---|
model |
Eloquent model |
controller |
HTTP controller with CRUD methods |
migration |
Database migration |
command |
Artisan console command |
job |
Queueable job |
event |
Event class |
listener |
Event listener |
notification |
Notification class |
request |
Form request validation |
resource |
API resource |
middleware |
HTTP middleware |
policy |
Authorization policy |
rule |
Validation rule |
component |
Blade component |
test |
Pest test |
factory |
Model factory |
seeder |
Database seeder |
view |
Blade view |
Plugin Structure
my-plugin/
├── src/
│ ├── MyPluginPlugin.php
│ ├── MyPluginServiceProvider.php
│ └── Commands/
├── config/
├── resources/
│ ├── views/
│ └── lang/
├── routes/
├── tests/
├── docs/
└── composer.json
Configuration
Publish the configuration:
php artisan vendor:publish --tag=accelade-plugins-config
Configuration Options
// config/accelade-plugins.php return [ 'discovery' => [ 'enabled' => true, // Enable auto-discovery 'cache' => true, // Cache discovered plugins ], 'paths' => [ base_path('packages'), // Paths to scan for plugins ], 'defaults' => [ 'vendor' => 'accelade', 'author' => 'Your Name', 'email' => 'your@email.com', 'license' => 'MIT', ], ];
Plugin API
use Accelade\Plugins\Facades\Plugins; // Get all plugins Plugins::all(); // Get enabled plugins Plugins::enabled(); // Check if plugin exists Plugins::has('my-plugin'); // Get plugin instance $plugin = Plugins::get('my-plugin'); // Enable/disable Plugins::enablePlugin('my-plugin'); Plugins::disablePlugin('my-plugin'); // Discover plugins manually Plugins::discover();
Documentation
The package includes comprehensive documentation:
- Getting Started - Installation and basic usage
- Creating Plugins - Detailed guide on creating plugins
- Component Generators - All available component generators
Docs Integration
Plugins automatically register their documentation with the Accelade docs system via the service provider:
// In your plugin's ServiceProvider protected function registerDocs(): void { if (! $this->app->bound('accelade.docs')) { return; } $docs = $this->app->make('accelade.docs'); // Register package path $docs->registerPackage('my-plugin', __DIR__.'/../docs'); // Register navigation group $docs->registerGroup('my-plugin', 'My Plugin', 'icon-name', 50); // Register sections $docs->section('my-plugin-overview') ->label('Overview') ->markdown('overview.md') ->inGroup('my-plugin') ->register(); }
Testing
# Run tests composer test # Run tests with coverage composer test:coverage # Run code formatter composer format # Run mago linter composer mago # Run static analysis composer analyse
Credits
License
The MIT License (MIT). Please see License File for more information.