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教程栏目进行学习!
以上是Laravel文档工具的详细内容。更多信息请关注PHP中文网其他相关文章!

Laravel通过简化Web开发过程和提供强大功能脱颖而出。其优势包括:1)简洁的语法和强大的ORM系统,2)高效的路由和认证系统,3)丰富的第三方库支持,使得开发者能专注于编写优雅的代码并提高开发效率。

laravelispredminandermanthandermanthandermanthandermanthermanderframework,设计Forserver-SideLogic,databasemagement,andapideplupment,thryitalsosupportsfortfortsfrontenddevelopmentwithbladeTemplates。

Laravel和Python在性能和可扩展性方面的表现各有优劣。Laravel通过异步处理和队列系统提升性能,但受PHP限制在高并发时可能有瓶颈;Python利用异步框架和强大的库生态系统表现出色,但在多线程环境下受GIL影响。

Laravel适合团队熟悉PHP且需功能丰富的项目,Python框架则视项目需求而定。1.Laravel提供优雅语法和丰富功能,适合需要快速开发和灵活性的项目。2.Django适合复杂应用,因其“电池包含”理念。3.Flask适用于快速原型和小型项目,提供极大灵活性。

Laravel可以用于前端开发。1)使用Blade模板引擎生成HTML。2)集成Vite管理前端资源。3)构建SPA、PWA或静态网站。4)结合路由、中间件和EloquentORM创建完整Web应用。

PHP和Laravel可用于构建高效的服务器端应用。1.PHP是开源脚本语言,适用于Web开发。2.Laravel提供路由、控制器、EloquentORM、Blade模板引擎等功能,简化开发。3.通过缓存、代码优化和安全措施,提升应用性能和安全性。4.测试和部署策略确保应用稳定运行。

Laravel和Python在学习曲线和易用性上的表现各有优劣。Laravel适合快速开发Web应用,学习曲线相对平缓,但掌握高级功能需时间;Python语法简洁,学习曲线平缓,但动态类型系统需谨慎。

Laravel在后端开发中的优势包括:1)优雅的语法和EloquentORM简化了开发流程;2)丰富的生态系统和活跃的社区支持;3)提高了开发效率和代码质量。Laravel的设计让开发者能够更高效地进行开发,并通过其强大的功能和工具提升代码质量。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom编辑器mac版下载
最流行的的开源编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版
中文版,非常好用

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)