Laravel文档工具
laravel-doc
⛵laravel-doc 是一个用来生成文档,通过markdown来撰写文档,并提供web访问文档的项目
安装要求
- PHP >= 7.0.0
- Laravel >= 5
安装
composer require foryoufeng/laravel-doc
如果你是运行的Laravel 5.5以下的版本,需要在config/app.php的service provider中添加:
Foryoufeng\Doc\DocServiceProvider::class
运行如下命令来发布资源文件
php artisan doc:install
发布资源之后会多出很多文件
/public/vendor/laravel-doc //样式文件 /resources/views/docs //界面文件 /resources/mds/docs //文档文件 /resources/mds/apidocs //api文件 /app/Http/Controllers/Docs //增加了控制器文件 config/laravel_doc.php //文档配置文件 routes/web.php中增加了路由文件
访问/doc,即可看到本项目的说明文档
访问/apidoc,即可看到本项目的接口说明文档
如何使用
普通文档的编写
在resources/mds/docs中创建你的md文件,如demo.md,加入你需要的内容,
然后到app/Http/Controllers/Docs/LaravelDocController.php的index_md中加入数据即可访问,例如:
//默认已经加入了2个例子
private function index_md()
{
return [
[
'name' => config('laravel_doc.languages.install'),
'doc_link' => 'install.md',
],
[
'name' => config('laravel_doc.languages.how_use'),
'doc_link' => 'how_use.md',
],
[
'name' => 'demo',
'doc_link' => 'demo.md',
],
];
}
然后访问/doc,即可看到效果



链接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取码:x2p5
免费分享,但是X度限制严重,如若链接失效点击链接或搜索加群 群号518475424。
控制器说明
默认文档的路径
$this->mds_path=resource_path('mds/docs/');
getMenu()里面的代码是文档显示的菜单,这个是写文档需要用到的
- 配置多个菜单示例
protected function getMenu() return [ [ 'name'=>config('laravel_doc.languages.project_doc'), 'spread'=>true,//菜单是否展开,false不展开 'children'=>[ 'name'=>config('laravel_doc.languages.install'), 'doc_link'=>'install.md', ], ], [ 'name'=>config('laravel_doc.languages.project_doc'), 'spread'=>false,//不展开菜单 'children'=>[ 'name'=>config('laravel_doc.languages.install'), 'doc_link'=>'install.md', ], ], ]; }- 配置好菜单后可以在
resources/mds/docs中新建doc_link中指定的md文件,然后进行文档的编写
api接口文档的编写
在resources/mds/apidocs中创建你的md文件,如demo.md,加入你需要的内容,
然后到app/Http/Controllers/Docs/LaravelApiDocController.php的index_md中加入数据即可访问,例如:
private function index_md()
{
return [
[
'name' => 'apidoc_html',
'doc_link' => 'apidoc_html.md',
//可自行修改你的$this->host来使用你自己定义的访问地址
'url' => $this->host.'apidoc/html',
'request_type' => 'get',//请求方式 get或者post
//请求参数
'params'=>[
'name'=>'apidoc_html.md',
]
],
[
'name' => 'demo',
'doc_link' => 'demo.md',
'url' => $this->host.'apidoc/html',
'request_type' => 'get',//请求方式 get或者post
//给定一些需要请求的参数
'params'=>[
'name'=>'',
'user_id'=>'',
]
],
];
}
然后访问/apidoc,即可看到效果
点击提供的demo:apidoc_html,即可看到上面的请求路径和需要的请求参数,以及下面的参数文档
点击发送请求按钮,可以执行ajax请求,如果接口没有问题的话,就会返回ajax数据了
这个时候点击生成文档,会打开一个markdown的编辑框和右侧的效果图,该界面获取了当前点击页面
中定义的请求路径,参数,返回值等,在预览效果中你可以修改接口人,参数说明中对每个参数进行说明,
以及返回值的说明等,然后点击生成按钮,会根据你定义的$this->mds_path.你配置的doc_link,
如:resources/mds/apidocs/demo.md,来产生文件
laravel_doc.php 配置文件说明
//laravel-doc的名字
'name' => 'Laravel-doc',
//用在了定义撰写接口人的名字
'author' => env('DOC_AUTHOR','foryoufeng'),
//接口请求发送了这个token
'token' => env('DOC_TOKEN','doc'),
//做国际化时可以用到
'languages'=>[
'search'=>'搜索',
'search_result'=>'搜索结果',
'project_doc'=>'项目文档',
'doc_name'=>'文档名称',
'install'=>'安装',
'how_use'=>'使用说明',
'request_type'=>'http请求方式',
'request_url'=>'请求地址',
'send_request'=>'发送请求',
'generate_doc'=>'生成文档',
'welcome_use'=>'欢迎使用',
'param'=>'参数',
'value'=>'值',
'generate'=>'生成',
]
进阶
多项目
如果你的项目比较小,只用写一个文档和一个api接口文档,那么在
app/Http/Controllers/Docs/LaravelApiDocController.php和app/Http/Controllers/Docs/LaravelDocController.php
中加入你的文档应该基本满足要求
如果有多个项目,可以复制app/Http/Controllers/Docs、resources/views/docs,可以在resources/mds/目录中新建你准备写文档的目录
然后在路由文件中定义好需要的路由,需要复制下面的这些路由
//doc route
Route::group(['namespace'=>'Docs'],function (){
Route::get('doc', 'LaravelDocController@index')->name('doc.index');
//md文件返回到html
Route::get('doc/html', 'LaravelDocController@html')->name('doc.html');
Route::get('apidoc', 'LaravelApiDocController@index')->name('doc.apidoc');
//md文件返回到html
Route::get('apidoc/html', 'LaravelApiDocController@html')->name('doc.apidoc.html');
//预览api文档
Route::post('apidoc/markdown', 'LaravelApiDocController@markdown')->name('doc.apidoc.markdown');
//生成api文档
Route::post('apidoc/save', 'LaravelApiDocController@save')->name('doc.apidoc.save');
});
国际化
可以修改
config/laravel_doc.php中的languages来更换语言,默认提供的是中文接口拦截
在
config/laravel_doc.php中有一个token的配置,接口做ajax请求时在header中带了Access-Token,接口可以根据这个配置,
做一个中间件的处理,比如使用指定的token就可以获取对应用户的信息,进行接口的请求和赋值等tips
项目为了通用,我并没有提供中间件进行文档和接口的拦截,出于安全考虑,建议使用者可以根据自身需求编写中间件进行文档的保护
Laravel文档工具的更多相关文章
- 生成chm文档工具- Sandcastle -摘自网络
Sandcastle是微软官方的文档生成工具,NDoc开发停止后,这个貌似也是唯一的一个这方面的工具.它从dll文件及其xml注释文件能够 生成完整的帮助文档,支持多种生成格式(Helpe1x:chm ...
- API文档工具-Swagger的集成
最近安装了API文档工具swagger,因为Github上已有详细安装教程,且安装过程中没有碰到大的阻碍,所以此文仅对这次安装做一份大致记录 相关网站 Swagger 官方地址: http://swa ...
- Javascript自动化文档工具JSDuck在Windows下的使用心得
作者: zyl910 一.工具比较 为了让前端JavaScript程序更具可维护性,更利于团队开发,文档非常重要.此时便需要使用自动化文档工具了. 我对比了各种JavaScript自动化文档工具,发现 ...
- Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
1. 引言 各位在开发的过程中肯定遇到过被接口文档折磨的经历,由于 RESTful 接口的轻量化以及低耦合性,我们在修改接口后文档更新不及时,导致接口的调用方(无论是前端还是后端)经常抱怨接口与文档不 ...
- JavaScript(3)——文档工具
文档工具 LEARN HTML = 教程 HTML REFERENCE = 字典 HTML + CSS + JAVASCRIPT = DYNAMIC HTML 推荐浏览器: Chrome浏览器(有丰 ...
- ShowDoc,APIDoc,可道云API,语雀-适合IT企业的文档工具
ShowDoc,APIDoc,可道云API,语雀-适合IT企业的文档工具 一.ShowDoc官方文档及说明 1.1 它可以用来做什么 1.2 它都有些什么功能 1.3 使用在线的ShowDoc 1.4 ...
- docsify网站文档工具用法总结
docsify , 网站文档动态生成工具,类似gitbook 特性 无需构建,写完文档直接发布 容易使用并且轻量 (~19kB gzipped) 智能的全文搜索 提供多套主题 丰富的 API 支持 E ...
- 开源的API文档工具框架——Swagger简介
初次接触Swagger是在2017年5月,当时公司正好要对整套系统架构进行重新设计,有同事推荐用这个技术框架来规范后台接口的API文档.当时因为架构重构,涉及改造的技术点太多,一时也就没太多精力,把S ...
- Sandcastle Help File Builder(.NET帮助文档工具)的版本选择心得——支持VS2010至VS2015,高版本项目文件问题
作者: zyl910 一.缘由 "Sandcastle Help File Builder"(简称SHFB)是一个很好用.NET 帮助文档生成工具. 但它的每个版本支持的VS版本范 ...
随机推荐
- WPF样式与触发器(3)
WPF中的各类控件元素, 都可以自由的设置其样式. 诸如: 字体(FontFamily) 字体大小(FontSize) 背景颜色(Background) 字体颜色(Foreground) 边距(Mar ...
- Django2.0版本以上与pymsql 不匹配问题以及解决方法
Django2.0版本以上与pymsql 不匹配问题以及解决方法 Django 2.0 以上 如果使用pymysql0.93,需要一下两步操作: # 1 第一次报错信息: File "D:\ ...
- HighChat动态绑定数据 数据后台绑定(三)
今天看了几位大佬的博客,学到了一些,现在分享一下,也作为以后的参考 不多说看代码 1.后台代码 public ActionResult Ajax2() { ReportData reportData ...
- 【开发笔记】- AbstractRoutingDataSource动态数据源切换,AOP实现动态数据源切换
AbstractRoutingDataSource动态数据源切换 上周末,室友通宵达旦的敲代码处理他的多数据源的问题,搞的非常的紧张,也和我聊了聊天,大概的了解了他的业务的需求.一般的情况下我们都是使 ...
- Extjs 树菜单的自动展开数据的请求
今天在做extjs开发的时候,在树菜单上遇到了一个坑,也许是我刚接触extjs 不熟的缘故 问题描述:后台设置的树自动展开,但是在前端总是只显示一条数据,但是数据确实都请求到了. 经过几个小时不屑的努 ...
- 浅谈华为验厂对MES系统的要求
众所周知,华为对供应商在管理.防错.品控.追溯等方面的要求都非常严格.在华为验厂时,对供应商的信息系统,尤其是MES系统的评估也是有非常具体的要求.那么我们今天就来谈谈华为验厂时,对MES系统有哪些具 ...
- java mybatis Column 'AAA' in where clause is ambiguous
今天在java mybatis项目中遇到一个问题,“java mybatis Column 'AAA' in where clause is ambiguous”, 这是由于在多表连接查询的时候,遇上 ...
- Shell 编程 文本处理工具 sed
本篇主要写一些shell脚本文本处理工具sed的使用. 概述 sed(Stream EDitor)是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除.替换.添加 ...
- 为 Jupyter Notebook指定虚拟环境的 Python 解释器
说明:本机系统为 win10 64 位, base 是集成于 Anaconda3 的 64 位的python,以下是创建虚拟环境 py366-32,安装 3.6.6 版的 32 为python,把 3 ...
- MMORPG服务器场景中的aoi算法思考
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/lwtbn1/article/details/37961695 最近在做一个移动平台上的MMORPG项 ...