lavavel php 手册,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,即可看到效果
控制器说明
默认文档的路径$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文档工具相关推荐
- 干掉 Postman?测试接口直接生成API文档,这个文档工具真香!
欢迎关注方志朋的博客,回复"666"获面试宝典 实不相瞒我的收藏夹里躺着很多优质的开源项目,我有个爱好平时遇到感兴趣的开源项目都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享 ...
- 在线API文档、技术文档工具ShowDoc
[个人开源作品]在线API文档.技术文档工具ShowDoc ShowDoc是什么 每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂.文档呢?!文档呢?!Show me t ...
- SaaS产品你知道哪些?盘点几款在线编辑文档工具
关于SaaS产品云端office/在线编辑文档工具/多人在线文档工具你知道哪些? 随着用户办公.学习需求的日益丰富,产品功能演化也在不断加速.目前,传统的office软件已经不能满足人们云处理.多人协 ...
- FreeMarker中文帮助手册API文档,基础入门学习文档
FreeMarker中文帮助手册API文档,基础入门学习文档 分类: 编程技术 发布: bywei 浏览: 7 日期: 2011年5月28日 分享到: QQ空间 新浪微博 腾讯微博 人人网 什么是Fr ...
- java 接口文档工具_一款Java基于注释的接口文档生成工具
一. 痛点 你还在手动维护接口文档嘛,花一个下午不停的复制粘贴代码里面的注释 接口字段变动,还得去更新文档,更新不及时导致文档不同步 或者你使用了swagger之类的基于注解,依靠运行时的文档工具,看 ...
- API文档工具-Swagger的集成
最近安装了API文档工具swagger,因为Github上已有详细安装教程,且安装过程中没有碰到大的阻碍,所以此文仅对这次安装做一份大致记录 相关网站 Swagger 官方地址: http://swa ...
- 生成chm文档工具- Sandcastle -摘自网络
Sandcastle是微软官方的文档生成工具,NDoc开发停止后,这个貌似也是唯一的一个这方面的工具.它从dll文件及其xml注释文件能够 生成完整的帮助文档,支持多种生成格式(Helpe1x:chm ...
- 团队合作开发的两种文档工具
前言 团队中,需要从需求分析开始确定,一直到项目的开发完成,中间要经历各种事情,需要各种任务来维持,一直到合作开发完成,所以需要一个团队协作查看的任务工具.那么这里推荐的有两种,trello,和tea ...
- JBoot 全网上最好用的 API 文档工具
简介 到目前为止,Jboot 已经开源超过了 5 年的时间,迭代了 200+ 个版本,已经被超过 1000+ 公司在使用,其中包含了多个知名的上市公司,我们了解到的多个使用 Jboot 开发的产 ...
- API文档工具knife4j使用详解
api文档 编写api文档是一个费时的操作,过程枯燥.那有没有一种可以自动生成api文档的工具呢,答案是有,比如swagger就是可以自动生成的,像yapi.apidoc.showdoc等等是需要我们 ...
最新文章
- bzoj 2878 [Noi2012]迷失游乐园——树上的期望dp
- Duilib教程-非DUI控件
- JavaBean fields TO ExtjsMode fields
- springboot使用thymeleaf完成数据的页面展示
- C++赋值操作符重载
- Android代码 listview选中,Android开发listview选中高亮简单实现代码分享
- 算法-codeup1928-日期差值
- zemax光学设计高阶优化
- ROC False reject rate 和 false alarms
- 【财经期刊FM-Radio|2021年03月09日】
- uni-app老年模式字体设置思路
- linux黑客大曝光 pdf,UPPH、UPH
- citrix ADC VPX Models整理
- Java字节码,字节码指令
- SpringMVC —— @ResponseBody原理
- Vue 引入高德地图 vue-amap
- STM32——光敏传感器实验-M4
- 效率源希捷自校准配套专修软件 v1.0 绿色
- .Net分布式缓存应用实例:Couchbase
- http://show.ku6.com/app.html,恶意软件分析 URL链接扫描 免费在线病毒分析平台 | 魔盾安全分析...
热门文章
- 【图像去噪】基于matlab全变分算法图像去噪【含Matlab源码 1324期】
- 【语音分离】基于matlab FASTICA语音分离【含Matlab源码 1023期】
- SPSS 分层回归(图文+数据集)【SPSS 027期】
- mysql 对日期的处理函数_MySQL日期处理函数
- python yield理解_python教程:迭代器,生成器与for循环机制
- 信任的机器_您应该信任机器人吗?
- matlab 灰度化原理公式,MATLAB的Sobel图像边缘灰度值检测算法的详细公式和实现资料概述...
- 梯度下降算法(GD)—收敛速率证明
- batch与spark spring_spark streaming 与 kafka 结合使用的一些概念理解
- Runtime 源码阅读