
本文介绍了如何将 phpDocumentor 生成的文档集成到 Laravel 项目中,并仅向授权用户提供访问权限。通过配置 CI/CD 流程、文件系统磁盘和路由,可以实现自动生成和安全访问文档的目标。
本教程将指导你如何使用 Laravel 提供 phpDocumentor 生成的文档,并确保只有授权用户才能访问。这对于需要内部文档,并希望控制访问权限的项目非常有用。
首先,需要在 CI/CD 脚本中集成 phpDocumentor 的生成过程。这可以确保每次部署时,文档都是最新的。
安装 phpDocumentor:
立即学习“PHP免费学习笔记(深入)”;
在你的服务器上安装 phpDocumentor。可以使用 Composer 全局安装:
composer global require phpdocumentor/phpdocumentor
生成文档:
使用以下命令生成文档。确保指定正确的源代码目录和目标目录。
phpDocumentor -d . -t storage/docs/
-d . 指定当前目录为源代码目录,-t storage/docs/ 指定生成的文档输出到 storage/docs/ 目录。
重要提示: 如果 storage 目录被 .gitignore 忽略,确保在部署过程中将 storage/docs/ 目录包含进去,以便将其推送到生产服务器。
接下来,需要在 Laravel 的文件系统配置中添加一个新的磁盘,用于访问生成的文档。
修改 config/filesystem.php:
在 config/filesystem.php 文件的 disks 数组中添加以下配置:
'local-docs' => [
    'driver' => 'local',
    'root' => storage_path('docs'),
],这将创建一个名为 local-docs 的磁盘,它指向 storage/docs/ 目录。
现在,需要创建一个路由,用于提供文档,并应用 auth 中间件,以确保只有登录用户才能访问。
修改 routes/web.php:
在 routes/web.php 文件中添加以下路由:
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Storage;
use GuzzleHttp\Psr7\MimeType;
Route::get('/docs/{url?}', function ($url = null) {
    if (Storage::disk('local-docs')->exists($url)) {
        $file = Storage::disk('local-docs')->get($url);
        $mimeType = MimeType::fromFilename($url);
        return response($file, 200)->header('Content-Type', $mimeType);
    } else {
        abort(404);
    }
})->where('url', '(.*)')->middleware('auth');这个路由将拦截所有以 /docs/ 开头的请求,并尝试从 local-docs 磁盘中获取相应的文件。middleware('auth') 确保只有通过身份验证的用户才能访问此路由。where('url', '(.*)') 确保路由可以匹配包含子目录的 URL。
注意: 确保没有其他路由使用了 docs 前缀,否则可能会导致冲突。
为了确保浏览器能够正确地显示文档,需要设置正确的 Content-Type 头。上面的代码示例使用了 GuzzleHttp\Psr7\MimeType::fromFilename($url) 来根据文件名推断 MIME 类型。你需要确保安装了 guzzlehttp/psr7 包:
composer require guzzlehttp/psr7
通过以上步骤,你已经成功地将 phpDocumentor 生成的文档集成到了 Laravel 项目中,并仅向授权用户提供访问权限。
注意事项:
这个方法提供了一种安全且自动化的方式来管理和提供你的项目文档。
以上就是使用 Laravel 安全地提供 phpDocumentor 生成的文档的详细内容,更多请关注php中文网其它相关文章!
                        
                        PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号