| Install | |
|---|---|
composer require alizharb/laravel-modular-livewire |
|
| Latest Version: | v1.0.2 |
| PHP: | ^8.2 |
Laravel Modular Livewire is the official bridge for Laravel Modular. It enables automatic discovery, registration, and first-class Artisan support for Livewire components within your modular architecture.
Modules/*/app/Livewire.make:livewire command with --module support.<livewire:blog::post-list />).Install the package via Composer (requires alizharb/laravel-modular):
composer require alizharb/laravel-modular-livewire
The service provider will be automatically registered. It will automatically hook into the laravel-modular registry.
Use the native make:livewire command with the --module flag to generate any Livewire 4 component type.
The modern Livewire 4 standard. Everything in one .blade.php file.
php artisan make:livewire Status --module=Blog
Modules/Blog/resources/views/livewire/⚡status.blade.phpblog::statusThe traditional separate Class and Template structure.
php artisan make:livewire Analytics --module=Blog --class
Modules/Blog/app/Livewire/Analytics.phpModules/Blog/resources/views/livewire/analytics.blade.phpPerfect for complex components with dedicated JS and CSS.
php artisan make:livewire Dashboard --module=Blog --mfc
Modules/Blog/resources/views/livewire/⚡dashboard/ (Directory containing .php, .blade.php, .js, .css)Use the pages:: prefix for full-page components to keep them logically separated from UI fragments.
php artisan make:livewire pages::post.create --module=Blog
Modules/Blog/resources/views/livewire/pages/⚡create.blade.phpblog::pages::post.createLaravel Modular Livewire fully supports Livewire 4's native Route::livewire() for full-page modular components.
use Modules\Blog\Livewire\Analytics;
use Illuminate\Support\Facades\Route;
Route::livewire('/blog/analytics', Analytics::class);
// Resolves to the single-file or class-based component
Route::livewire('/blog/status', 'blog::status');
// Full-page component via modular alias
Route::livewire('/blog/create', 'blog::pages::post.create');
// Example from Test module
Route::livewire('/blog/create', 'blog::pages::post.create');
In your Blade views, use the module's alias as the namespace:
{{-- Traditional or Single-file --}}
<livewire:blog::status />
{{-- Specialized Page Components --}}
<livewire:blog::pages::post.create />
{{-- Example from Blog module --}}
<livewire:blog::pages::post.create />
The bridge respects your existing modular.php paths and Livewire's own configuration. No additional configuration is required.
Explore the rest of the Laravel Modular ecosystem:
vendor/bin/pest
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.
Made with ❤️ by Ali Harb