soysaltan/marygen

使用单行命令生成基于MaryUI的页面

0.35.3 2024-09-17 14:52 UTC

This package is auto-updated.

Last update: 2024-09-17 14:53:17 UTC


README

目录

  1. 简介
  2. 功能
  3. 要求
  4. 安装
  5. 配置
  6. 用法
  7. 命令结构
  8. 生成的组件
  9. 自定义
  10. 翻译功能
  11. 故障排除
  12. 贡献
  13. 许可证
  14. 支持

简介

MaryGen是一个强大的Laravel包,旨在简化生成MaryUI组件和Livewire页面以供Laravel模型使用的过程。它自动创建CRUD(创建、读取、更新、删除)接口,为开发者节省了大量的时间和精力,用于设置管理面板或数据管理系统。

功能

  • 自动为Laravel模型生成MaryUI组件
  • 创建具有完整CRUD功能的Livewire页面
  • 基于数据库模式智能生成表单字段
  • 自动生成表列
  • 内置排序、分页和搜索功能
  • 易于定制的选项
  • 自动生成路由
  • 对生成内容支持翻译(自0.35.0版起新功能)

要求

安装

  1. 请确保您已设置Laravel项目。

  2. 安装MaryUI

    https://mary-ui.com/docs/installation

  3. 安装Livewire、Livewire Volt包(如果尚未与MaryUI一起安装)

    composer require livewire/livewire livewire/volt && php artisan volt:install
  4. 安装MaryGen包

    composer require soysaltan/marygen --dev
  5. (可选) 发布配置文件

    php artisan vendor:publish --provider="SoysalTan\MaryGen\MaryGenServiceProvider" --tag="config"

配置

发布配置文件后,您可以通过修改 config/marygen.php 来自定义包的行为

return [
    'model_namespace' => 'App\Models',
    'use_mg_like_eloquent_directive' => true,
];
  • model_namespace: 定义您的模型命名空间。默认为 App\Models
  • use_mg_like_eloquent_directive: 确定是否使用MgLike Eloquent指令进行搜索功能。例如
$q->mgLike(['id', 'username', 'email', 'password', 'name', 'lastname', 'title', 'phone', 'avatar', 'time_zone', 'last_login_at', 'status', 'created_at', 'updated_at'], $this->search))

用法

要为模型生成MaryUI组件和Livewire页面,请使用以下命令

php artisan marygen:make {--m|model=} {--w|view=} {--d|dest_lang=} {--s|source_lang=} {--nr|no-route}
  • --m|model: 您希望生成组件的模型的名称。
  • --w|view: (可选) 视图文件的名称。如果没有提供,则使用小写模型名称。
  • --d|dest_lang: (如果存在源_lang,则必需) 翻译的目的语言代码。
  • --s|source_lang: (可选) 翻译的源语言代码。如果不存在,则自动检测源语言。
  • --nr|no-route: (可选 - 自v0.35.2版起) 阻止将自动路由添加到routes/web.php。

示例

php artisan marygen:make --model=User --view=admin-users --dest_lang=es --no-route

此命令将为User模型生成具有CRUD功能的Livewire页面,将视图文件命名为admin-users.blade.php,并将内容从英语翻译成西班牙语,并跳过自动路由生成。

防止自动路由生成(自v0.35.2版起)

从版本0.35.2开始,MaryGen阻止自动路由生成功能。默认情况下,当您使用不带--no-route选项的marygen:make命令生成新组件时,将自动将相应的路由添加到您的routes/web.php文件。

自定义

您可以通过修改以下方法来自定义生成的组件

  • getMaryUIComponent(): 调整数据库列类型与MaryUI组件之间的映射。
  • getIconForColumn(): 修改表单字段的图标选择。
  • generateLivewirePage(): 自定义生成的Livewire组件和Blade视图的结构。

此外,您可以直接编辑生成的文件,以进一步满足您的特定需求。

翻译功能

MaryGen 包含一个翻译功能,允许您生成不同语言的内容。此功能使用 Google Translate API 来翻译生成的组件中的字段名称、标签和其他文本元素。它使用 stichoza/google-translate-php 包。(https://github.com/Stichoza/google-translate-php) 要使用翻译功能

  1. 在运行 marygen:make 命令时,使用 --dest_lang 选项指定目标语言。
  2. 可选地,使用 --source_lang 选项指定源语言。如果未提供,Google Translate 将尝试自动检测源语言。

示例

php artisan marygen:make --model=Product --view=product-management --dest_lang=fr --source_lang=en

此命令将为产品模型生成组件,并将内容从英语翻译成法语。

注意:翻译功能需要活跃的互联网连接来与 Google Translate API 通信。

故障排除

常见问题和解决方案

  1. MaryUI 包未找到:

    • 错误:MaryUI 包未找到!请使用以下命令安装:'composer req robsontenorio/mary'
    • 解决方案:运行 composer require robsontenorio/mary 安装 MaryUI 包。
  2. Livewire Volt 包未找到:

    • 错误:Livewire Volt 包未找到!请参阅文档:'https://livewire.laravel.net.cn/docs/volt#installation'
    • 解决方案:使用以下命令安装 Livewire Volt:composer require livewire/livewire livewire/volt && php artisan volt:install
  3. 模型未找到:

    • 错误:模型 {modelName} 不存在!
    • 解决方案:确保指定的模型存在于您的模型命名空间中(默认:App\Models)。
  4. 视图文件已存在:

    • 错误:文件 {viewName}.blade.php 已存在!
    • 解决方案:为您的视图选择不同的名称,或者如果您想覆盖现有文件,请手动删除现有文件。
  5. 翻译错误:

    • 错误:各种 Google Translate API 错误
    • 解决方案:确保您有活跃的互联网连接,并且您使用的语言代码是有效的。请检查 Google Translate 文档以获取支持的语种代码。
  6. 路由生成问题:

    • 问题:不希望的路由被添加到 routes/web.php
    • 解决方案:在运行 marygen:make 命令时使用 --no-route 选项以防止自动生成路由。

贡献

欢迎为 MaryGen 贡献!以下是您可以如何贡献

  1. 叉取存储库
  2. 为您的功能或错误修复创建一个新分支
  3. 编写您的代码和测试
  4. 提交带有您更改清晰描述的拉取请求

请确保您的代码遵循现有的样式约定,并包含适当的测试。

许可证

MaryGen 是 MIT 许可下的开源软件。

支持

有关更多信息或支持

  • GitHub 存储库 上打开一个问题
  • 通过存储库的联系方式联系包维护者

有关最新更新和有关 MaryUI 的更详细信息,请访问 官方 MaryUI 文档