承接 mhmiton/laravel-modules-livewire 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mhmiton/laravel-modules-livewire

Composer 安装命令:

composer require mhmiton/laravel-modules-livewire

包简介

Using Laravel Livewire in Laravel Modules package with automatically registered livewire components for every modules.

README 文档

README

Using Laravel Livewire in Laravel Modules package with automatically registered livewire components for every modules.

laravel-modules-livewire

Example Source Code: https://github.com/mhmiton/laravel-modules-livewire-example

Example Live Demo: https://dev.mhmiton.com/laravel-modules-livewire-example

Installation:

Install through composer:

composer require mhmiton/laravel-modules-livewire

Publish the package's configuration file:

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

Creating Single File Components (SFC):

Command Signature:

php artisan module:make-livewire {component} {module} {--sfc} {--force} {--emoji=} {--stub=}

Example:

php artisan module:make-livewire sfc.post.create Core --sfc

Force create component if the component already exists:

php artisan module:make-livewire sfc.post.create Core --sfc --force

Output:

COMPONENT CREATED - SFC  🤙

VIEW:  modules/Core/resources/views/livewire/sfc/post/⚡create.blade.php
TAG: <livewire:core::sfc.post.create />

Option (--emoji):

Use emoji (⚡) in file/directory names (true or false)

php artisan module:make-livewire sfc.post.create Core --sfc --emoji=false

Modifying Stubs:

Check the Modifying Stubs section for the --stub option.

Creating Multi File Components (MFC):

Command Signature:

php artisan module:make-livewire {component} {module} {--mfc} {--force} {--emoji=} {--test} {--js} {--stub=}

Example:

php artisan module:make-livewire mfc.post.create Core --mfc

Force create component if the component already exists:

php artisan module:make-livewire mfc.post.create Core --mfc --force

Output:

COMPONENT CREATED - MFC  🤙

CLASS:  modules/Core/resources/views/livewire/mfc/post/⚡create/create.php
VIEW:  modules/Core/resources/views/livewire/mfc/post/⚡create/create.blade.php
TAG: <livewire:core::mfc.post.create />

Option (--emoji):

Use emoji (⚡) in file/directory names (true or false)

php artisan module:make-livewire mfc.post.create Core --mfc --emoji=false

Option (--test): Create MFC with test file.:

php artisan module:make-livewire mfc.post.create Core --mfc --test

Option (--js): Create MFC with js file:

php artisan module:make-livewire mfc.post.create Core --mfc --js

Modifying Stubs:

Check the Modifying Stubs section for the --stub option.

Creating Class-based Components:

Command Signature:

php artisan module:make-livewire {component} {module} {--class} {--view=} {--force} {--inline} {--stub=}

Example:

php artisan module:make-livewire Pages/AboutPage Core --class
php artisan module:make-livewire Pages\\AboutPage Core --class
php artisan module:make-livewire pages.about-page Core --class

Force create component if the class already exists:

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

Output:

COMPONENT CREATED - CLASS BASED  🤙

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

Inline Component:

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

Output:

COMPONENT CREATED - CLASS BASED  🤙

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

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 --class --view=pages/about
php artisan module:make-livewire Pages/AboutPage Core --class --view=pages.about

Output:

COMPONENT CREATED - CLASS BASED  🤙

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

Rendering Components:

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

Example:

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

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.

// For Single File Component (SFC)
stubs/modules-livewire/livewire-sfc.stub

// For Multi File Component (MFC)
stubs/modules-livewire/livewire-mfc-class.stub
stubs/modules-livewire/livewire-mfc-view.stub
stubs/modules-livewire/livewire-mfc-test.stub
stubs/modules-livewire/livewire-mfc-js.stub

// For Class-based Component
stubs/modules-livewire/livewire.inline.stub
stubs/modules-livewire/livewire.stub
stubs/modules-livewire/livewire.view.stub

// For Volt
stubs/modules-livewire/volt-component-class.stub
stubs/modules-livewire/volt-component.stub

You're able to set a custom stub directory for component with (--stub) option.

php artisan module:make-livewire Pages/AboutPage Core --class --stub=about
php artisan module:make-livewire Pages/AboutPage Core --class --stub=modules-livewire/core
php artisan module:make-livewire Pages/AboutPage Core --class --stub=./

Creating Form Components:

Command Signature:

php artisan module:make-livewire-form {component} {module} {--force} {--stub=}

Example:

php artisan module:make-livewire-form Forms/PostForm Core
php artisan module:make-livewire-form Forms\\PostForm Core
php artisan module:make-livewire-form forms.post-form Core

Force create component if the class already exists:

php artisan module:make-livewire-form Forms/PostForm Core --force

Output:

COMPONENT CREATED  🤙

CLASS: Modules/Core/app/Livewire/Forms/PostForm.php

Volt:

Creating Volt Components:

Command Signature:

php artisan module:make-volt {component} {module} {--view=} {--class} {--functional} {--force} {--stub=}

Example:

php artisan module:make-volt volt.counter Core

Force create component if the view already exists:

php artisan module:make-volt volt.counter Core --force

Output:

VOLT COMPONENT CREATED  🤙

VIEW:  modules/Core/resources/views/livewire/volt/counter.blade.php
TAG: <livewire:core::volt.counter />

Option (--view):

You're able to set a registered view namespace for component with (--view) option.

php artisan module:make-volt volt.counter Core --view=livewire
php artisan module:make-volt volt.counter Core --view=pages

Note: Only registered view namespace will be support from the "volt_view_namespaces" config. By default registered view namespaces are 'livewire' and 'pages' in the config.

/*
|--------------------------------------------------------------------------
| View namespaces for volt
|--------------------------------------------------------------------------
|
*/

'volt_view_namespaces' => ['livewire', 'pages'],

Option (--class):

You're able to create class based volt component with (--class) option.

php artisan module:make-volt volt.counter Core --class

Option (--functional):

You're able to create functional (API style) volt component with (--functional) option.

php artisan module:make-volt volt.counter Core --functional

Note:: By default will be create class based or functional component by registered view namespace's files. If any class based component exists on the view namespace, then will be create class based component.

Modifying Stubs:

Check the Modifying Stubs section for the --stub option.

Rendering Volt Components:

<livewire:{module-lower-name}::component-view />

Tag:

<livewire:core::volt.counter />

Route:

use Livewire\Volt\Volt;

Volt::route('/volt-counter', 'core::volt.counter');

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' => [
    //     'name_lower' => 'chat',
    //     'path' => base_path('libraries/Chat'),
    //     'app_path' => 'src',
    //     'module_namespace' => 'Libraries\\Chat',
    //     'namespace' => 'Livewire',
    //     'view' => 'resources/views/livewire',
    //     'views_path' => 'resources/views',
    //     'volt_view_namespaces' => ['livewire', 'pages'],
    // ],
],

Custom module config details

name_lower: Module name in lower case (required).

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.

views_path: Module resource view path (required).

volt_view_namespaces: By default using config('modules-livewire.volt_view_namespaces') value. You can set a different value for the specific module.

License

Copyright (c) 2021 Mehediul Hassan Miton mhmiton.dev@gmail.com

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

mhmiton/laravel-modules-livewire 适用场景与选型建议

mhmiton/laravel-modules-livewire 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 469.65k 次下载、GitHub Stars 达 234, 最近一次更新时间为 2021 年 01 月 07 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「module」 「modules」 「laravel」 「laravel-modules」 「nwidart」 「laravel-module」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 mhmiton/laravel-modules-livewire 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 mhmiton/laravel-modules-livewire 我们能提供哪些服务?
定制开发 / 二次开发

基于 mhmiton/laravel-modules-livewire 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 469.65k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 236
  • 点击次数: 32
  • 依赖项目数: 12
  • 推荐数: 0

GitHub 信息

  • Stars: 234
  • Watchers: 6
  • Forks: 42
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-01-07