alltrons / laravel-erd-modules
一个用于自动在Laravel模型中生成交互式ERD关系的工具,升级后支持模块化工作
1.8
2022-04-13 22:04 UTC
Requires
- php: ^7.3|^7.4|^8.0
- spatie/laravel-package-tools: ^1.4.3
Requires (Dev)
- brianium/paratest: ^6.2
- nunomaduro/collision: ^5.3
- orchestra/testbench: ^6.15
- phpunit/phpunit: ^9.3
- spatie/laravel-ray: ^1.23
- vimeo/psalm: ^4.8
README
自动从Laravel模型关系生成交互式ERD。
- 此包提供了一个CLI,通过查看模型内部设置的关系来自动生成交互式ERD。
- 工具的界面可以获取关系的JSON数据和表模式,以便使用您选择的视觉图表库,如d3.js等。
- 输出是受HTML和JS(GOJS)支持的交互式ERD(实体关系图)。
要求
安装
您可以通过composer安装此包
composer require kevincobain2000/laravel-erd --dev
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Kevincobain2000\LaravelERD\LaravelERDServiceProvider"
用法
您可以在 localhost:3000/erd
访问ERD
或生成静态HTML
php artisan erd:generate
ERD HTML生成在 docs/
内。
示例
截图
获取JSON输出
use Kevincobain2000\LaravelERD\LaravelERD; $modelsPath = base_path('app/Models'); $laravelERD = new LaravelERD(); $linkDataArray = $laravelERD->getLinkDataArray($modelsPath); $nodeDataArray = $laravelERD->getNodeDataArray($modelsPath); $erdData = json_encode( [ "link_data" => $linkDataArray, "node_data" => $nodeDataArray, ], JSON_PRETTY_PRINT ); var_dump($erdData);
示例JSON输出
{ "link_data": [ { "from": "comments", "to": "users", "fromText": "1..1\nBT", "toText": "", "fromPort": "author_id", "toPort": "id", "type": "BelongsTo" }, { "from": "comments", "to": "posts", "fromText": "1..1\nBT", "toText": "", "fromPort": "post_id", "toPort": "id", "type": "BelongsTo" }, ... ... ], "node_data": [ { "key": "comments", "schema": [ { "name": "id", "isKey": true, "figure": "Hexagon", "color": "#be4b15", "info": "integer" }, { "name": "author_id", "isKey": false, "figure": "Decision", "color": "#6ea5f8", "info": "integer" }, ... ... } ... ]
测试
./vendor/bin/phpunit
变更日志
- 初始发布 - POC