Automatically discover and load/register multiple/different class namespaces for Livewire components.
You can install the package via composer:
composer require joserick/laravel-livewire-discover
Add to AppServiceProvider.php
public function boot(): void
{
// Load multiples namespace for Livewire components.
Livewire::discover('Namespaces\\Livewire', 'my-components');
Livewire::discover('User\\Repository\\Livewire', 'new-components');
...
}
Or use the config: 'config/laravel-livewire-discover.php'
# Publish the config
php artisan vendor:publish --tag livewire-discover-config
// Load the namespace to Livewire components.
'class_namespaces' => [
// 'prefix' => 'namespace\\package',
'my-components' => 'Namespaces\\Livewire',
'new-components' => 'User\\Repository\\Livewire',
],
<!-- Call Livewire Components. -->
<livewire:my-components-devices /> <!-- Class: Namespace\Livewire\Devices; -->
<livewire:new-components-devices-table /> <!-- Class: User\Repository\Livewire\DevicesTable; -->
// Load Livewire Component from Route
use Namespaces\Livewire\Devices;
use User\Repository\Livewire\DevicesTable;
Route::get('/devices', Devices::class); // resolve name my-components-devices
Route::get('/devices_table', DevicesTable::class); // resolve name new-components-devices-table
The GNU Public License (GPLv3). Please see License File for more information.