alizharb/livewire-modular

100% first-class support for Livewire 4 in nwidart/laravel-modules.

Fund package maintenance!
alizharb

Installs: 1

Dependents: 0

Suggesters: 1

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/alizharb/livewire-modular

1.0.1 2026-01-17 04:19 UTC

This package is auto-updated.

Last update: 2026-01-17 04:19:59 UTC


README

Livewire Modular Banner

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status GitHub PHPStan Action Status Total Downloads

100% first-class support for Livewire 4 in nwidart/laravel-modules.

This package provides seamless integration between Livewire 4 and nwidart/laravel-modules, enabling you to build modular Laravel applications with full Livewire component support, including the new nested namespace syntax (module::pages::component).

Features

  • Full Livewire 4 Compatibility: Works seamlessly with all Livewire 4 features
  • Nested Namespace Support: Use module::pages::show syntax for pages and layouts
  • Automatic Component Discovery: Components are auto-discovered in all enabled modules
  • Smart Artisan Commands: make:livewire --module=Blog generates components in the correct module
  • Route Integration: Full support for Route::livewire() macro with modular components
  • All Component Types: SFC, MFC, and class-based components work out of the box
  • Flexible Directory Structure: Supports pages/, layouts/, and custom subdirectories

Requirements

  • PHP 8.3 or higher
  • Laravel 12.0 or higher
  • Livewire 4.0 or higher
  • nwidart/laravel-modules 11.0 or higher

Installation

You can install the package via composer:

composer require alizharb/livewire-modular

The package will automatically register its service provider.

Usage

Creating Components

Use the standard make:livewire command with the --module option:

# Class-based component
php artisan make:livewire PostList --module=Blog

# Single File Component (SFC)
php artisan make:livewire Home --module=Blog --sfc

# Multi-File Component (MFC)
php artisan make:livewire PostCard --module=Blog --mfc

# Page component (nested namespace)
php artisan make:livewire pages::show --module=Blog --sfc

Component Structure

Class-based component:

// Modules/Blog/app/Livewire/PostList.php
namespace Modules\Blog\Livewire;

use Livewire\Component;

class PostList extends Component
{
    public function render()
    {
        return view('blog::livewire.post-list');
    }
}

Page component with nested namespace:

// Modules/Blog/app/Livewire/pages/⚡show.php
namespace Modules\Blog\Livewire\pages;

use Livewire\Component;

class Show extends Component
{
}

Routing

Use the Livewire 4 Route::livewire() macro with modular components:

// Modules/Blog/routes/web.php
use Illuminate\Support\Facades\Route;

// Standard components
Route::livewire('/posts', 'blog::post-list');

// Page components (nested namespace)
Route::livewire('/posts/{id}', 'blog::pages::show');

Using Components in Blade

{{-- Standard component --}}
<livewire:blog::post-list />

{{-- Page component --}}
<livewire:blog::pages::show :id="$id" />

{{-- Nested in other components --}}
<div>
    <livewire:blog::post-card :post="$post" />
</div>

How It Works

The package extends Livewire's component discovery and resolution system to work seamlessly with modular applications:

  1. Component Discovery: Automatically scans all enabled modules for Livewire components
  2. Namespace Registration: Registers module-specific namespaces (e.g., blog::)
  3. Path Resolution: Resolves component paths to the correct module directories
  4. Smart Generation: The make:livewire command creates components in the module structure

Directory Structure

Components are organized within each module:

Modules/
└── Blog/
    ├── app/
    │   └── Livewire/
    │       ├── PostList.php
    └── resources/
        └── views/
            ├── livewire/
            │   └── post-list.blade.php
            └── pages/
                └── ⚡show.blade.php

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.