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,即可看到效果

控制器说明

默认文档的路径$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相关技术文章,请访问Laravel教程栏目进行学习!

lavavel php 手册,Laravel文档工具相关推荐

  1. 干掉 Postman?测试接口直接生成API文档,这个文档工具真香!

    欢迎关注方志朋的博客,回复"666"获面试宝典 实不相瞒我的收藏夹里躺着很多优质的开源项目,我有个爱好平时遇到感兴趣的开源项目都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享 ...

  2. 在线API文档、技术文档工具ShowDoc

    [个人开源作品]在线API文档.技术文档工具ShowDoc ShowDoc是什么 每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂.文档呢?!文档呢?!Show me t ...

  3. SaaS产品你知道哪些?盘点几款在线编辑文档工具

    关于SaaS产品云端office/在线编辑文档工具/多人在线文档工具你知道哪些? 随着用户办公.学习需求的日益丰富,产品功能演化也在不断加速.目前,传统的office软件已经不能满足人们云处理.多人协 ...

  4. FreeMarker中文帮助手册API文档,基础入门学习文档

    FreeMarker中文帮助手册API文档,基础入门学习文档 分类: 编程技术 发布: bywei 浏览: 7 日期: 2011年5月28日 分享到: QQ空间 新浪微博 腾讯微博 人人网 什么是Fr ...

  5. java 接口文档工具_一款Java基于注释的接口文档生成工具

    一. 痛点 你还在手动维护接口文档嘛,花一个下午不停的复制粘贴代码里面的注释 接口字段变动,还得去更新文档,更新不及时导致文档不同步 或者你使用了swagger之类的基于注解,依靠运行时的文档工具,看 ...

  6. API文档工具-Swagger的集成

    最近安装了API文档工具swagger,因为Github上已有详细安装教程,且安装过程中没有碰到大的阻碍,所以此文仅对这次安装做一份大致记录 相关网站 Swagger 官方地址: http://swa ...

  7. 生成chm文档工具- Sandcastle -摘自网络

    Sandcastle是微软官方的文档生成工具,NDoc开发停止后,这个貌似也是唯一的一个这方面的工具.它从dll文件及其xml注释文件能够 生成完整的帮助文档,支持多种生成格式(Helpe1x:chm ...

  8. 团队合作开发的两种文档工具

    前言 团队中,需要从需求分析开始确定,一直到项目的开发完成,中间要经历各种事情,需要各种任务来维持,一直到合作开发完成,所以需要一个团队协作查看的任务工具.那么这里推荐的有两种,trello,和tea ...

  9. JBoot 全网上最好用的 API 文档工具

    ‍ ‍简介 到目前为止,Jboot 已经开源超过了 5 年的时间,迭代了 200+ 个版本,已经被超过 1000+ 公司在使用,其中包含了多个知名的上市公司,我们了解到的多个使用 Jboot 开发的产 ...

  10. API文档工具knife4j使用详解

    api文档 编写api文档是一个费时的操作,过程枯燥.那有没有一种可以自动生成api文档的工具呢,答案是有,比如swagger就是可以自动生成的,像yapi.apidoc.showdoc等等是需要我们 ...

最新文章

  1. bzoj 2878 [Noi2012]迷失游乐园——树上的期望dp
  2. Duilib教程-非DUI控件
  3. JavaBean fields TO ExtjsMode fields
  4. springboot使用thymeleaf完成数据的页面展示
  5. C++赋值操作符重载
  6. Android代码 listview选中,Android开发listview选中高亮简单实现代码分享
  7. 算法-codeup1928-日期差值
  8. zemax光学设计高阶优化
  9. ROC False reject rate 和 false alarms
  10. 【财经期刊FM-Radio|2021年03月09日】
  11. uni-app老年模式字体设置思路
  12. linux黑客大曝光 pdf,UPPH、UPH
  13. citrix ADC VPX Models整理
  14. Java字节码,字节码指令
  15. SpringMVC —— @ResponseBody原理
  16. Vue 引入高德地图 vue-amap
  17. STM32——光敏传感器实验-M4
  18. 效率源希捷自校准配套专修软件 v1.0 绿色
  19. .Net分布式缓存应用实例:Couchbase
  20. http://show.ku6.com/app.html,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...

热门文章

  1. 【图像去噪】基于matlab全变分算法图像去噪【含Matlab源码 1324期】
  2. 【语音分离】基于matlab FASTICA语音分离【含Matlab源码 1023期】
  3. SPSS 分层回归(图文+数据集)【SPSS 027期】
  4. mysql 对日期的处理函数_MySQL日期处理函数
  5. python yield理解_python教程:迭代器,生成器与for循环机制
  6. 信任的机器_您应该信任机器人吗?
  7. matlab 灰度化原理公式,MATLAB的Sobel图像边缘灰度值检测算法的详细公式和实现资料概述...
  8. 梯度下降算法(GD)—收敛速率证明
  9. batch与spark spring_spark streaming 与 kafka 结合使用的一些概念理解
  10. Runtime 源码阅读