joserick/laravel-livewire-discover

Discover and autoload multiples components of livewire by convention (componentNamespace)

v0.3.2 2024-03-04 08:06 UTC

This package is auto-updated.

Last update: 2024-05-04 08:30:40 UTC


README

laravel_livewire_discover.jpg

Laravel Livewire Discover

Packagist Downloads GitHub License GitHub Release

Automatically discover and load/register multiple/different class namespaces for Livewire components.

Installation

You can install the package via composer:

composer require joserick/laravel-livewire-discover

Enjoying this package? "Buy Me A Coffee"

Config

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',
],

Use

<!-- Call Livewire Components. -->
<livewire:my-components-devices /> <!-- Class: Namespace\Livewire\Devices; -->
<livewire:new-components-devices-table /> <!-- Class: User\Repository\Livewire\DevicesTable; -->

Or

// 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

License

The GNU Public License (GPLv3). Please see License File for more information.