书童造轮子之自动生成数据字典

每次开发项目时,总是会被要求提供数据字典,每次手动写文档太累了,所以写了 这个扩展自动读取数据库信息 并显示在网页上,支持导出 HtmlPDF 文件。

  1. 导出 Html 实际为生成并导出一个离线版本的压缩包。
  2. 导出 PDF 使用了 laravel-snappy 扩展包
  3. 导出 Markdown 为数据表增加了锚点链接。

安装

  1. 安装包文件

    $ composer require jormin/laravel-ddoc

配置

  1. 注册 ServiceProvider:

     Jormin\DDoc\DDocServiceProvider::class,
  2. 创建配置文件:

     php artisan vendor:publish

    执行命令后会在 config 目录下生成两个文件:

    • laravel-ddoc.php:本扩展配置文件,用于配置文档底部 Copyright 文案和链接。

    • snappy.phplaravel-snappy 的配置文件,用于配置导出 pdf 的选项。

      pdf.binary 项配置 wkhtmltopdf 执行文件的目录

      linux/unix/mac 系统的执行文件存放于 项目目录/vendor/h4cc/wkhtmltopdf-[amd64|i386]/bin/ 目录下

      wundiws 系统的执行文件存放于 项目目录/vendor/wemersonjanuario/wkhtmltopdf-windows/bin/[64bit|32bit]/ 目录下

使用

安装扩展后,浏览器访问 [http|https]://[your domain or ip]/ddoc

参考问题

  1. Q:导出的 PDF 文件中文不显示或者乱码?

    A:导致此问题的原因是机器上没有安装中文字体,解决方式如下

     1、先从本机或者网络上下载所需的中文字体
     2、修改字体文件的权限,使root用户以外的用户也可以使用
         $ cd /usr/share/fonts/chinese/
     3、建立字体缓存
         $ sudo mkfontscale
         $ # 如果提示 mkfontscale: command not found,则需要安装# sudo apt-get install ttf-mscorefonts-installer
         $ sudo mkfontdir 
         $ sudo fc-cache -fv
         $ # 如果提示 fc-cache: command not found,则需要安装# sudo apt-get install fontconfig

参考图

License

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

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer 于 6年前 加精
jormin
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 22
Summer

超赞 :+1:

6年前 评论

这个还是挺贴心的!

6年前 评论
jormin

@Summer 更新站长大大推荐 :smile: :smile:

6年前 评论
jormin

@839891627 谢谢夸奖 :smile: :smile:

6年前 评论

Laravel的生态真是棒呀

6年前 评论
jormin

@Kr科 是啊,喜欢 Laravel 的同学越来越多了 :smile: :smile:

6年前 评论

备注是根据什么生成的,还是手动录入的?

6年前 评论
jormin

@徐小花 备注是在数据迁移文件中写好或者手动在数据库中写好,扩展只是读取这些信息

6年前 评论

phpmyadmin可以导出字典,你这个轮子造的好冤。

6年前 评论
jormin

@00x00 实际开发时,有很多人是没有登录 phpmyadmin 的权限的,像甲方、测试、移动端开发同事等,所以只能生成文档给他们看,每次数据结构更新后都需要再生成新的文档,手动操作太麻烦,所以才造了这个轮子

6年前 评论
jormin

@klgd 万分感谢 :smile: :smile:

6年前 评论

去年因为项目需要,我也搞了一个数据字典工具 https://github.com/zhuzhichao/laravel-db-d... ,效果如下

filehttps://camo.githubusercontent.com/0bfeb8e...

不过我这个可以后期自己添加一些字段的备注,和表的备注。因为开发时一些备注可能会过时或者干脆没有的。对这个备注的保存我还专门做了优化 :smile:

@徐小花

6年前 评论
jormin

@zhuzhichao 手动点赞 :smile:

6年前 评论

导出 pdf 的这个插件好难用 :cry: 掉坑了

6年前 评论
JeffreyBool

5.5安装报错

6年前 评论

怒赞 很好用
补充一下路由的写法
Route::get('ddoc','\Jormin\DDoc\Controllers\DDocController@index');

5年前 评论
黑哈尔

厉害了,要坚持更新哈。 :grin:

3年前 评论
黑哈尔

你好,我在laravel 6 中 将 blade 模板发布到 resources/views/vendor/laravel-ddoc/index.blade.php 了,但是修改这里的模板并不生效,修改vendor/jormin/laravel-ddoc/resources/views/index.blade.php 这个文件才能生效。

修改resources/views/vendor/laravel-ddoc/index.blade.php

file

file

修改vendor/jormin/laravel-ddoc/resources/views/index.blade.php

file

file

请问,我怎么操作才能让resources/views/vendor/laravel-ddoc/index.blade.php 的模板文件生效?谢谢啦。

3年前 评论
jormin (楼主) 3年前
黑哈尔 (作者) 3年前
jormin (楼主) 3年前
黑哈尔 (作者) 3年前

是我使用姿势不对么,lumen的话不支持。

2年前 评论
kenvent (作者) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!