https://github.com/codions/laravel-modules-livewire
Using Laravel Livewire in Laravel Modules package with automatically registered livewire components for every modules.
https://github.com/codions/laravel-modules-livewire
Last synced: about 2 months ago
JSON representation
Using Laravel Livewire in Laravel Modules package with automatically registered livewire components for every modules.
- Host: GitHub
- URL: https://github.com/codions/laravel-modules-livewire
- Owner: codions
- License: mit
- Created: 2023-06-01T08:51:17.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-01T10:34:00.000Z (almost 3 years ago)
- Last Synced: 2025-03-03T20:51:21.773Z (about 1 year ago)
- Language: PHP
- Size: 10.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Laravel Modules With Livewire
Using [Laravel Livewire](https://github.com/livewire/livewire) in [Laravel Modules](https://github.com/nWidart/laravel-modules) package with automatically registered livewire components for every modules.
### Installation:
Install through composer:
```
composer require codions/laravel-modules-livewire
```
Publish the package's configuration file:
```
php artisan vendor:publish --tag=modules-livewire-config
```
### Making Components:
**Command Signature:**
`php artisan module:make-livewire --view= --force --inline --stub= --custom`
**Example:**
```
php artisan module:make-livewire Pages/AboutPage Core
```
```
php artisan module:make-livewire Pages\\AboutPage Core
```
```
php artisan module:make-livewire pages.about-page Core
```
**Force create component if the class already exists:**
```
php artisan module:make-livewire Pages/AboutPage Core --force
```
**Output:**
```
COMPONENT CREATED
CLASS: Modules/Core/Http/Livewire/Pages/AboutPage.php
VIEW: Modules/Core/Resources/views/livewire/pages/about-page.blade.php
TAG:
```
**Inline Component:**
```
php artisan module:make-livewire Core Pages/AboutPage --inline
```
**Output:**
```
COMPONENT CREATED
CLASS: Modules/Core/Http/Livewire/Pages/AboutPage.php
TAG:
```
**Modifying Stubs:**
Publish the package's stubs:
```
php artisan vendor:publish --tag=modules-livewire-stub
```
After publishing the stubs, will create these files. And when running the make command, will use these stub files by default.
```
stubs/modules-livewire/livewire.inline.stub
stubs/modules-livewire/livewire.stub
stubs/modules-livewire/livewire.view.stub
```
**You're able to set a custom stub directory for component with (--stub) option.**
```
php artisan module:make-livewire Core Pages/AboutPage --stub=about
```
```
php artisan module:make-livewire Core Pages/AboutPage --stub=modules-livewire/core
```
```
php artisan module:make-livewire Core Pages/AboutPage --stub=./
```
**Extra Option (--view):**
**You're able to set a custom view path for component with (--view) option.**
**Example:**
```
php artisan module:make-livewire Pages/AboutPage Core --view=pages/about
```
```
php artisan module:make-livewire Pages/AboutPage Core --view=pages.about
```
**Output:**
```
COMPONENT CREATED
CLASS: Modules/Core/Http/Livewire/Pages/AboutPage.php
VIEW: Modules/Core/Resources/views/livewire/pages/about.blade.php
TAG:
```
### Rendering Components:
``
**Example:**
```
```
### Custom Module:
**To create components for the custom module, should be add custom modules in the config file.**
The config file is located at `config/modules-livewire.php` after publishing the config file.
Remove comment for these lines & add your custom modules.
```
/*
|--------------------------------------------------------------------------
| Custom modules setup
|--------------------------------------------------------------------------
|
*/
// 'custom_modules' => [
// 'Chat' => [
// 'path' => base_path('libraries/Chat'),
// 'module_namespace' => 'Libraries\\Chat',
// // 'namespace' => 'Http\\Livewire',
// // 'view' => 'Resources/views/livewire',
// // 'name_lower' => 'chat',
// ],
// ],
```
**Custom module config details**
> **path:** Add module full path (required).
>
> **module_namespace:** Add module namespace (required).
>
> **namespace:** By default using `config('modules-livewire.namespace')` value. You can set a different value for the specific module.
>
> **view:** By default using `config('modules-livewire.view')` value. You can set a different value for the specific module.
>
> **name_lower:** By default using module name to lowercase. If you set a custom name, module components will be register by custom name.
>
## Credits
- This project is a modified version of [mhmiton/laravel-modules-livewire](https://github.com/mhmiton/laravel-modules-livewire), created as a fork with additional changes.
## License
Laravel Themes Manager is open-sourced software licensed under the [MIT license](LICENSE).