mhmiton/laravel-modules-livewire

在 Laravel Modules 包中使用 Laravel Livewire,为每个模块自动注册 Livewire 组件。

v3.0.0 2024-03-24 00:11 UTC

This package is auto-updated.

Last update: 2024-09-24 01:11:11 UTC


README

Laravel LivewireLaravel Modules 包中使用 Laravel Livewire,为每个模块自动注册 Livewire 组件。

laravel-modules-livewire

示例源代码: https://github.com/mhmiton/laravel-modules-livewire-example

示例实时演示: https://dev.mhmiton.com/laravel-modules-livewire-example

安装

通过 composer 安装

composer require mhmiton/laravel-modules-livewire

发布包的配置文件

php artisan vendor:publish --tag=modules-livewire-config

制作组件

命令签名

php artisan module:make-livewire <Component> <Module> --view= --force --inline --stub= --custom

示例

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

如果类已存在,则强制创建组件

php artisan module:make-livewire Pages/AboutPage Core --force

输出

COMPONENT CREATED  🤙

CLASS: Modules/Core/app/Livewire/Pages/AboutPage.php
VIEW:  Modules/Core/resources/views/livewire/pages/about-page.blade.php
TAG: <livewire:core::pages.about-page />

内联组件

php artisan module:make-livewire Core Pages/AboutPage --inline

输出

COMPONENT CREATED  🤙

CLASS: Modules/Core/app/Livewire/Pages/AboutPage.php
TAG: <livewire:core::pages.about-page />

修改模板

发布包的模板

php artisan vendor:publish --tag=modules-livewire-stub

发布模板后,将创建这些文件。在运行 make 命令时,将默认使用这些模板文件。

stubs/modules-livewire/livewire.inline.stub
stubs/modules-livewire/livewire.stub
stubs/modules-livewire/livewire.view.stub

您可以使用 (--stub) 选项为组件设置自定义模板目录。

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

额外选项 (--view)

您可以使用 (--view) 选项为组件设置自定义视图路径。

示例

php artisan module:make-livewire Pages/AboutPage Core --view=pages/about
php artisan module:make-livewire Pages/AboutPage Core --view=pages.about

输出

COMPONENT CREATED  🤙

CLASS: Modules/Core/app/Livewire/Pages/AboutPage.php
VIEW:  Modules/Core/resources/views/livewire/pages/about.blade.php
TAG: <livewire:core::pages.about-page />

渲染组件

<livewire:{module-lower-name}::component-class-kebab-case />

示例

<livewire:core::pages.about-page />

自定义模块

要为自定义模块创建组件,应在配置文件中添加自定义模块。

配置文件位于发布配置文件后的 config/modules-livewire.php

取消注释这些行并添加您的自定义模块。

    /*
    |--------------------------------------------------------------------------
    | Custom modules setup
    |--------------------------------------------------------------------------
    |
    */

    // 'custom_modules' => [
    //     'Chat' => [
    //         'path' => base_path('libraries/Chat'),
    //         'module_namespace' => 'Libraries\\Chat',
    //         // 'namespace' => 'Livewire',
    //         // 'view' => 'resources/views/livewire',
    //         // 'name_lower' => 'chat',
    //     ],
    // ],

自定义模块配置详细信息

path: 添加模块完整路径(必需)。

module_namespace: 添加模块命名空间(必需)。

namespace: 默认使用 config('modules-livewire.namespace') 的值。您可以为特定模块设置不同的值。

view: 默认使用 config('modules-livewire.view') 的值。您可以为特定模块设置不同的值。

name_lower: 默认使用模块名称的小写形式。如果您设置了自定义名称,模块组件将通过自定义名称进行注册。

许可证

版权所有 (c) 2021 Mehediul Hassan Miton mhmiton.dev@gmail.com

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件