# laravel-modeler
**Repository Path**: light2000/laravel-modeler
## Basic Information
- **Project Name**: laravel-modeler
- **Description**: 一个面向 Laravel 项目的本地化模型设计与代码生成工具。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-14
- **Last Updated**: 2026-05-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Laravel Modeler
> Laravel Modeler 是一个面向 Laravel 项目的本地建模与代码生成工具入口包。
> 通过 Composer 安装后,可使用 Artisan 命令下载并启动 Modeler Studio / Generator,完成模型设计、关系设计,并生成 Laravel 常用代码。
## 界面预览
以下为 Modeler Studio 界面截图(从左到右为 模型画布 → AI字段推荐 → 代码生成)。
---
## 项目定位
`light2000/laravel-modeler` 是 Laravel Modeler 工具链的 Composer PHP 包,主要负责:
- 注册 Laravel Service Provider
- 提供 `php artisan modeler:*` 命令
- 管理 `.modeler` 本地工作目录
- 下载并调用 Studio / Generator 二进制程序
- 读取 Laravel 项目配置并生成 Modeler 运行配置
- 将模型设计结果用于生成 Laravel 代码
它本身不是一个完整的低代码平台,而是 Laravel 项目中的本地开发辅助工具。
---
## 功能特性
- 本地运行,不需要把项目代码上传到云端
- 通过 Composer 接入 Laravel 项目
- 支持启动可视化建模 Studio
- 支持模型、字段、枚举、关联关系设计
- 支持生成 Laravel Model / Migration / Enum 等代码
- 支持 `.modeler` 目录保存本地工具配置与二进制文件
- 支持通过环境变量自定义 Studio / Generator 路径
- 适合 Laravel 12+ 项目的模型设计与代码生成流程
---
## 环境要求
建议环境:
- PHP >= 8.2
- Laravel >= 12
- Composer 2.x
- Windows / Linux / macOS
> 注:Studio / Generator 为独立二进制程序,不同系统需要下载对应版本。
---
## 安装
在 Laravel 项目根目录执行:
```bash
composer require light2000/laravel-modeler
```
如果 Laravel 自动发现 Service Provider 正常工作,通常不需要手动注册。
---
## 初始化 / 安装二进制
安装 Composer 包后,执行:
```bash
php artisan modeler:install
```
该命令通常会完成以下工作:
- 创建 `.modeler` 工作目录
- 下载 Studio / Generator 二进制程序
- 初始化必要的配置文件
- 准备本地运行环境
目录示例:
```text
your-laravel-project/
├─ app/
├─ config/
├─ database/
├─ vendor/
└─ .modeler/
├─ bin/
│ ├─ studio.exe
│ └─ generator.exe
├─ runtime/
```
> Windows 下二进制通常带 `.exe` 后缀;Linux / macOS 下通常不带后缀。
---
## 启动 Studio
执行:
```bash
php artisan modeler:studio
```
命令会启动本地 Studio 服务,并在浏览器中打开可视化建模界面。
如果当前环境没有桌面或无法自动打开浏览器,可以查看命令行输出的本地访问地址,然后手动访问。
---
## 生成代码
当模型设计完成后,可通过 Studio 界面触发生成,也可以使用 Artisan 命令调用 Generator。
常见生成内容包括:
- Eloquent Model
- Migration
- PHP Enum
- Factory
- Seeder
- 关联关系代码
- 配置辅助文件
具体支持范围以当前版本的 Generator 为准。
---
## 配置
Laravel Modeler 会读取 `config/modeler.php` 或内部默认配置。常用配置项包括:
也可以通过 `php artisan vendor:publish --tag=modeler-config` 命令将原始config发布到your-laravel-project/config中
```php
return [
'setting' => [
'TRANS_API_KEY' => env('MODELER_TRANS_API_KEY', ''), //百度翻译APP ID,阿里云 AccessKey ID,腾讯云 SecretId
'TRANS_API_SECRET' => env('MODELER_TRANS_API_SECRET', ''), //百度翻译密钥,阿里云 AccessKey Secret,腾讯云 SecretKey
'TRANS_PROVIDER' => env('MODELER_TRANS_PROVIDER', ''), //翻译API服务提供商,可选项:BAIDU,ALIYUN,TENCENT
'TRANS_PROXY' => env('MODELER_TRANS_PROXY', ''), //请求翻译API时的HTTP代理地址,不使用请留空
'LLM_PROVIDER' => env('MODELER_LLM_PROVIDER', ''), //大模型提供商:可选项:DEEPSEEK,DOUBAO,QWEN,GLM,OPENAI,CLAUDE
'LLM_API_KEY' => env('MODELER_LLM_API_KEY', ''), //大模型API KEY
'LLM_PROXY' => env('MODELER_LLM_PROXY', ''), //请求大模型API时的HTTP代理地址,不使用请留空
'PRO_SN' => env('MODELER_PRO_SN', ''), //laravel modeler PRO版本的SN
'STUDIO_SERVER_PORT' => env('MODELER_STUDIO_SERVER_PORT', "auto"), //laravel modeler studio HTTP访问端口
'STUDIO_AUTO_OPEN' => env('MODELER_STUDIO_AUTO_OPEN', true), //studio启动时是否自动打开浏览器
],
];
```
可在 `.env` 中覆盖:
```dotenv
MODELER_TRANS_API_KEY=...
MODELER_TRANS_API_SECRET=...
MODELER_TRANS_PROVIDER=BAIDU
MODELER_TRANS_PROXY=
MODELER_LLM_PROVIDER=DEEPSEEK
MODELER_LLM_API_KEY=...
MODELER_LLM_PROXY=
MODELER_PRO_SN=...
MODELER_STUDIO_SERVER_PORT=8080
MODELER_STUDIO_AUTO_OPEN=false
```
---
## 建议加入 `.gitignore`
`.modeler` 目录通常包含本地二进制、日志、临时文件和本机配置,建议不要提交到 Git:
```gitignore
.modeler/bin/
.modeler/runtime/
```
如果你的团队希望共享模型 schema 文件,可以只提交 schema 或项目配置文件,不提交二进制文件。
---
## 安全说明
Laravel Modeler 的 Studio / Generator 是本地二进制程序。首次运行时,系统或终端可能会提示是否允许执行,这是正常现象。
建议:
- 只从官方 Release 或可信下载源获取二进制文件
- 不要运行来源不明的 Studio / Generator
- 团队项目中建议固定版本号
- 如有需要,可对二进制文件进行 hash 校验
---
## 常见问题
### 1. Composer 包是否包含 Studio / Generator?
Composer 包主要提供 Laravel 集成入口和 Artisan 命令。Studio / Generator 通常通过 `modeler:install` 下载到项目的 `.modeler/bin` 目录。
这样可以避免 Composer 包体积过大,也方便不同系统下载对应二进制。
### 2. 为什么不把二进制放到 vendor 目录?
`vendor` 目录由 Composer 管理,更新或重新安装依赖时可能被覆盖。`.modeler` 更适合存放本地工具、日志和生成器运行数据。
### 3. 没有桌面的 Linux 服务器能用吗?
可以运行命令,但 Studio 是可视化界面,通常更适合在本地开发机使用。无桌面环境下可以通过命令行生成,或将 Studio 服务地址暴露给可访问浏览器的环境。
### 4. 是否会覆盖已有代码?
生成器应尽量遵循“生成文件”和“用户自定义文件”分离的原则。实际覆盖策略请以当前版本说明和生成前提示为准。建议在 Git 工作区干净时执行生成,方便查看 diff。
### 5. 是否需要提交 `.modeler`?
通常不建议提交整个 `.modeler`。如果 schema 文件位于 `.modeler` 中,可以按团队约定只提交 schema,不提交二进制、日志和临时文件。
---
## 开发目标
Laravel Modeler 希望解决的是:
> 在 Laravel 项目早期,通过可视化模型设计快速建立稳定、清晰、可重复生成的基础Model代码。
它更关注:
- 模型结构清晰
- 生成结果可预测
- Laravel 风格一致
- 减少重复手写样板代码
- 保留开发者对业务代码的控制权
---
## License
MIT
---
## Links
- Packagist: `light2000/laravel-modeler`
- Generator: `https://github.com/light2000/laravel-modeler-generator`
- Studio: `https://github.com/light2000/laravel-modeler-studio`