Laravel 中安全地提供 phpDocumentor 生成的文档

laravel 中安全地提供 phpdocumentor 生成的文档

本文介绍如何利用 Laravel 框架,安全地提供 phpDocumentor 生成的文档,使其仅对授权用户可见。通过配置 CI/CD 流程,自动生成文档并存储在指定目录,然后通过自定义路由和中间件,实现文档的访问控制,确保只有登录用户才能访问项目文档。

使用 Laravel 安全地托管 phpDocumentor 文档

phpDocumentor 是一款强大的 PHP 文档生成工具,可以根据代码中的注释自动生成 API 文档。然而,在某些情况下,我们希望这些文档只能被授权用户访问,例如团队内部成员。本文将介绍如何利用 Laravel 框架,安全地托管 phpDocumentor 生成的文档,并实现访问控制。

步骤 1: 生成 phpDocumentor 文档

首先,需要在你的 Laravel 项目中安装 phpDocumentor。你可以通过 Composer 来完成:

composer require phpdocumentor/phpdocumentor

安装完成后,就可以使用 phpDocumentor 生成文档了。在你的 CI/CD 脚本中添加以下命令:

立即学习“PHP免费学习笔记(深入)”;

phpDocumentor -d . -t storage/docs/

这条命令会将当前目录(-d .)下的代码生成文档,并输出到 storage/docs/ 目录(-t storage/docs/)。

重要提示:

请确保 storage/docs/ 目录不会被 .gitignore 文件忽略。如果该目录被忽略,生成的文档将不会被推送到生产服务器,导致无法访问。根据你的项目结构和需求,调整 -d 和 -t 参数。

步骤 2: 配置 Filesystem Disk

为了方便 Laravel 管理生成的文档,我们需要在 config/filesystem.php 文件中添加一个新的 disk 配置:

'disks' => [    // ... other disks    'local-docs' => [        'driver' => 'local',        'root' => storage_path('docs'),    ],],

这个配置定义了一个名为 local-docs 的 disk,它使用 local 驱动,并将根目录指向 storage/docs/。

步骤 3: 创建路由并应用中间件

接下来,我们需要创建一个路由来提供文档服务,并应用 auth 中间件来限制访问。在 routes/web.php 文件中添加以下代码:

use IlluminateSupportFacadesRoute;use IlluminateSupportFacadesStorage;use GuzzleHttpPsr7MimeType;Route::get('/docs/{url?}', function ($url = null) {    if (is_null($url)) {        $url = 'index.html'; // Or your default doc page    }    if (!Storage::disk('local-docs')->exists($url)) {        abort(404);    }    $resp = response(Storage::disk('local-docs')->get($url));    $resp->header('content-type', MimeType::fromFilename($url));    return $resp;})->where('url', '(.*)')->middleware('auth');

这段代码定义了一个 /docs/{url?} 路由,它可以接收一个可选的 URL 参数。

如果 URL 参数为空,则默认加载 index.html 文件(或者你的文档首页)。使用 Storage::disk(‘local-docs’)->get($url) 读取指定的文件内容。使用 GuzzleHttpPsr7MimeType::fromFilename($url) 获取文件的 MIME 类型,并设置响应头。使用 middleware(‘auth’) 应用 auth 中间件,确保只有登录用户才能访问该路由。如果文件不存在,返回404错误。

重要提示:

确保没有其他路由使用了 docs 前缀,否则可能会导致冲突。如果你的文档首页不是 index.html,请修改默认 URL。

步骤 4: 访问文档

现在,你可以通过访问 /docs 路由来查看你的 phpDocumentor 文档了。只有登录用户才能访问这些文档。

总结

通过以上步骤,你已经成功地将 phpDocumentor 生成的文档安全地托管在 Laravel 框架中。这种方法不仅可以方便地管理文档,还可以有效地控制文档的访问权限,确保只有授权用户才能查看。记得在 CI/CD 流程中添加文档生成步骤,并定期更新文档,以保持文档的准确性和完整性。

以上就是Laravel 中安全地提供 phpDocumentor 生成的文档的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1324423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月12日 11:05:20
下一篇 2025年12月12日 11:05:38

相关推荐

发表回复

登录后才能评论
关注微信