如何利用Ubuntu Composer高效制作专业文档?
- 内容介绍
- 文章标签
- 相关推荐
一、痛点概述:为什么你需要在 Ubuntu 上用 Composer 生成专业文档
在日常开发中,团队常常面临以下几大困扰:
- 依赖管理混乱——手动下载、升级第三方库耗时且容易出错。
- 文档不统一——不同模块使用不同工具生成,导致风格、格式不一致。
- 缺少自动化——每次新增或更新代码后都需要手动跑文档生成脚本,浪费人力。
- 部署环境差异——本地能跑,服务器上却找不到 composer 或相应的全局命令。
Composer 作为 PHP 的依赖管理工具,配合合适的文档生成插件,可以一次性解决上述所有痛点: - 自动拉取并锁定依赖版本 - 流程 - 支持全局或项目级安装,兼容 CI/CD 环境
二、环境准备:Ubuntu 必备前置条件
在开始之前。请确保你的机器满足以下要求:
- Ubuntu 18.04 以上
-
已安装
php与curl - 具备 sudo 权限
- 网络能够访问
检查 PHP 与 curl 是否可用
# 查看 PHP 版本
php -v
# 查看 curl 是否已安装
curl --version
三、一步到位安装 Composer
1️⃣ 使用官方安装脚本
# 下载并执行 installer
php -r "copy;"
php composer-setup.php
php -r "unlink;"
# 将 composer.phar 移动到全局可执行目录
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
2️⃣ 使用 apt 包管理器
# 更新软件源并安装
sudo apt update
sudo apt install -y composer
验证安装是否成功
# 输出版本信息即可确认
composer --version
# 示例输出: Composer version 2.x.x 2024-xx-xx …
四、为 Shell 添加自动补全
Bash 使用者:
# 下载补全脚本并放入 /etc/bash_completion.d/
curl -sS https://raw.githubusercontent.com/composer/composer/master/contrib/completion.bash \
-o /etc/bash_completion.d/composer
# 激活
source /etc/bash_completion.d/composer
Zsh 使用者:
# 下载并添加到 .zshrc 中
curl -sS https://raw.githubusercontent.com/composer/composer/master/contrib/completion.zsh \
-o ~/.zsh/completion/_composer
echo 'fpath+=~/.zsh/completion'>> ~/.zshrc
autoload -Uz compinit && compinit
source ~/.zshrc
五、初始化项目:让 Composer 成为你的项目根基
1️⃣ 创建项目目录并进入
# 创建目录并切换进去
mkdir -p ~/my-project && cd $_
2️⃣ 使用交互式向导生成 composer.json
# 会逐项询问项目名称、描述、作者等信息,按需填写即可
composer init
If you更喜欢一次性创建最小化的文件。也可以直接运行:
# 快速生成最基础的 composer.json
composer init --no-interaction --name="vendor/my-project" --description="Demo project" \
--author="Your Name <>" --require="php:^8.0"
>
六、依赖管理:让第三方库随手可得
下面演示两种常见场景:
a) 添加框架或库
# 安装最新稳定版 Laravel 框架
composer require laravel/laravel:^10.0
# 安装指定版本的 Guzzle HTTP 客户端
composer require guzzlehttp/guzzle:^7.5
b) 移除不再使用的依赖
# 卸载包同时清理 autoload 文件 composer remove guzzlehttp/guzzle
七、文档生成工具选型与全局/项目级安装
| 工具名称 & 用途 | 适用场景 | 推荐安装方式 |
|---|---|---|
| phpDocumentor | A‑style API 文档 | 全局:
composer global require phpdocumentor/phpdocumentor
|
| Docusaurus / Doctrum | Mardown/Static Site 文档站点 | 项目内:
composer require --dev doxygen/doctum"
|
| Sphinx + sphinxcontrib-phpdomain | Sphinx 风格技术手册 | 虚拟环境或 Docker 中自行配置 |
| Swa gger UI | OpenAPI/Swagger 文档展示 | |
| 其它工具 如 phpdocx…t d> |
*如果你只想快速得到 Markdown 格式的 API 列表,推荐使用 Doctum;若要完整的 HTML 手册,则首选 phpDocumentor。老实说,
八、在 composer.json 中配置自动化脚本 —— 一键生成文档
Composer 的"scripts"`字段可以把繁琐的命令封装成简洁指令。 下面给出一个完整示例,涵盖依赖安装后自动生成 API 文档还有 Markdown 手册:
json5
{
"name"的观点是,"vendor/my-project","require": {
说到"php","^8.0","laravel/laravel": "^10.0"
},"require-dev": {
"phpdocumentor/phpdocumentor": "^3.4","doctum/doctum": "^1.4"
}。// -------------------------------------------------
// ★★ 脚本区 ★★ 只需运行 `composer run-script docs` 就可以完成全部操作 ★★
// -------------------------------------------------
"scripts": {
// 安装完依赖后自动执行
"post-install-cmd":,// 手动触发的完整文档流水线:
再看"docs",// 删除旧文档目录的辅助脚本:
"clear-docs":,// 完成后给出提示:
"notify-success":
}
}
*注意事项*
- `@shell` 前缀告诉 Composer 在程序 shell 中输入命令;如果你使用 Windows,请改为 `@cmd`。
- `post-install-cmd` 会在每次执行 `composer install` 或 `update` 后自动跑一次这正是“免去手动跑脚本”的关键。
- `vendor/bin/phpdoc` 与 `vendor/bin/doctum.php` 方法取决于是否是全局或本地安装,请根据实际情况调整。
九、实际运行示例与常见问题排查
a) 手动触发文档建立:
# 项目根目录下直接运行:
composer run-script docs
# 若只想更新 API 部分,可单独调用:
composer run-script clear-docs && vendor/bin/phpdoc -d src -t docs/api --quiet
b) CI/CD 中集成 :
从name来看,Build Docs
从on来看,push:
branches:
至于jobs,build-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# 安装 PHP 与 Composer
- uses: shivammathur/setup-php@v2
with这方面,php-version: '8.1'
extensions: mbstring zip intl
# 缓存 vendor 文件夹加速后续建立
- name: Cache Composer dependencies
uses的观点是,actions/cache@v4
with的观点是,path: vendor
key的观点是。${{ runner.os }}-composer-${{ hashFiles }}
restore-keys: ${{ runner.os }}-composer-
# 安装项目依赖 & 执行自定义脚本
- name: Install & Generate Docs
至于run,|
composer install --prefer-dist --no-progress --no-interaction
# 将产出的文档推送至 gh-pages 分支
- name: Deploy Docs to GitHub Pages
再看if,success
至于uses,peaceiris/actions-gh-pages@v4
从with来看,github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/
keep_files: false
b) 常见错误与快速定位方法:
错误现象 可能原因 方法
Composer command not found
- 未将 /usr/local/bin/composer 加入 $PATH。
- 确认 /usr/local/bin 已在 $PATH;若未加入,可编辑 ~/.bashrc 添加 export PATH=$PATH:/usr/local/bin 并重新加载。
Class not found 在运行 phpDocumentor 时
- 未正确加载 vendor/autoload.php。怎么说呢,
- 确保已执行 composer install;若是全局模式,请检查 ~/.config/composer/vendor/autoload.php 是否被引用。
Permission denied 删除旧 docs 文件夹时
- 当前使用者无权写入目标目录。
- 使用 sudo chown $USER:$USER docs && sudo chmod -R u+rwX docs 修复权限,或将建立目录放在使用者空间内。
\
<\/table>
`
一、痛点概述:为什么你需要在 Ubuntu 上用 Composer 生成专业文档
在日常开发中,团队常常面临以下几大困扰:
- 依赖管理混乱——手动下载、升级第三方库耗时且容易出错。
- 文档不统一——不同模块使用不同工具生成,导致风格、格式不一致。
- 缺少自动化——每次新增或更新代码后都需要手动跑文档生成脚本,浪费人力。
- 部署环境差异——本地能跑,服务器上却找不到 composer 或相应的全局命令。
Composer 作为 PHP 的依赖管理工具,配合合适的文档生成插件,可以一次性解决上述所有痛点: - 自动拉取并锁定依赖版本 - 流程 - 支持全局或项目级安装,兼容 CI/CD 环境
二、环境准备:Ubuntu 必备前置条件
在开始之前。请确保你的机器满足以下要求:
- Ubuntu 18.04 以上
-
已安装
php与curl - 具备 sudo 权限
- 网络能够访问
检查 PHP 与 curl 是否可用
# 查看 PHP 版本
php -v
# 查看 curl 是否已安装
curl --version
三、一步到位安装 Composer
1️⃣ 使用官方安装脚本
# 下载并执行 installer
php -r "copy;"
php composer-setup.php
php -r "unlink;"
# 将 composer.phar 移动到全局可执行目录
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
2️⃣ 使用 apt 包管理器
# 更新软件源并安装
sudo apt update
sudo apt install -y composer
验证安装是否成功
# 输出版本信息即可确认
composer --version
# 示例输出: Composer version 2.x.x 2024-xx-xx …
四、为 Shell 添加自动补全
Bash 使用者:
# 下载补全脚本并放入 /etc/bash_completion.d/
curl -sS https://raw.githubusercontent.com/composer/composer/master/contrib/completion.bash \
-o /etc/bash_completion.d/composer
# 激活
source /etc/bash_completion.d/composer
Zsh 使用者:
# 下载并添加到 .zshrc 中
curl -sS https://raw.githubusercontent.com/composer/composer/master/contrib/completion.zsh \
-o ~/.zsh/completion/_composer
echo 'fpath+=~/.zsh/completion'>> ~/.zshrc
autoload -Uz compinit && compinit
source ~/.zshrc
五、初始化项目:让 Composer 成为你的项目根基
1️⃣ 创建项目目录并进入
# 创建目录并切换进去
mkdir -p ~/my-project && cd $_
2️⃣ 使用交互式向导生成 composer.json
# 会逐项询问项目名称、描述、作者等信息,按需填写即可
composer init
If you更喜欢一次性创建最小化的文件。也可以直接运行:
# 快速生成最基础的 composer.json
composer init --no-interaction --name="vendor/my-project" --description="Demo project" \
--author="Your Name <>" --require="php:^8.0"
>
六、依赖管理:让第三方库随手可得
下面演示两种常见场景:
a) 添加框架或库
# 安装最新稳定版 Laravel 框架
composer require laravel/laravel:^10.0
# 安装指定版本的 Guzzle HTTP 客户端
composer require guzzlehttp/guzzle:^7.5
b) 移除不再使用的依赖
# 卸载包同时清理 autoload 文件 composer remove guzzlehttp/guzzle
七、文档生成工具选型与全局/项目级安装
| 工具名称 & 用途 | 适用场景 | 推荐安装方式 |
|---|---|---|
| phpDocumentor | A‑style API 文档 | 全局:
composer global require phpdocumentor/phpdocumentor
|
| Docusaurus / Doctrum | Mardown/Static Site 文档站点 | 项目内:
composer require --dev doxygen/doctum"
|
| Sphinx + sphinxcontrib-phpdomain | Sphinx 风格技术手册 | 虚拟环境或 Docker 中自行配置 |
| Swa gger UI | OpenAPI/Swagger 文档展示 | |
| 其它工具 如 phpdocx…t d> |
*如果你只想快速得到 Markdown 格式的 API 列表,推荐使用 Doctum;若要完整的 HTML 手册,则首选 phpDocumentor。老实说,
八、在 composer.json 中配置自动化脚本 —— 一键生成文档
Composer 的"scripts"`字段可以把繁琐的命令封装成简洁指令。 下面给出一个完整示例,涵盖依赖安装后自动生成 API 文档还有 Markdown 手册:
json5
{
"name"的观点是,"vendor/my-project","require": {
说到"php","^8.0","laravel/laravel": "^10.0"
},"require-dev": {
"phpdocumentor/phpdocumentor": "^3.4","doctum/doctum": "^1.4"
}。// -------------------------------------------------
// ★★ 脚本区 ★★ 只需运行 `composer run-script docs` 就可以完成全部操作 ★★
// -------------------------------------------------
"scripts": {
// 安装完依赖后自动执行
"post-install-cmd":,// 手动触发的完整文档流水线:
再看"docs",// 删除旧文档目录的辅助脚本:
"clear-docs":,// 完成后给出提示:
"notify-success":
}
}
*注意事项*
- `@shell` 前缀告诉 Composer 在程序 shell 中输入命令;如果你使用 Windows,请改为 `@cmd`。
- `post-install-cmd` 会在每次执行 `composer install` 或 `update` 后自动跑一次这正是“免去手动跑脚本”的关键。
- `vendor/bin/phpdoc` 与 `vendor/bin/doctum.php` 方法取决于是否是全局或本地安装,请根据实际情况调整。
九、实际运行示例与常见问题排查
a) 手动触发文档建立:
# 项目根目录下直接运行:
composer run-script docs
# 若只想更新 API 部分,可单独调用:
composer run-script clear-docs && vendor/bin/phpdoc -d src -t docs/api --quiet
b) CI/CD 中集成 :
从name来看,Build Docs
从on来看,push:
branches:
至于jobs,build-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# 安装 PHP 与 Composer
- uses: shivammathur/setup-php@v2
with这方面,php-version: '8.1'
extensions: mbstring zip intl
# 缓存 vendor 文件夹加速后续建立
- name: Cache Composer dependencies
uses的观点是,actions/cache@v4
with的观点是,path: vendor
key的观点是。${{ runner.os }}-composer-${{ hashFiles }}
restore-keys: ${{ runner.os }}-composer-
# 安装项目依赖 & 执行自定义脚本
- name: Install & Generate Docs
至于run,|
composer install --prefer-dist --no-progress --no-interaction
# 将产出的文档推送至 gh-pages 分支
- name: Deploy Docs to GitHub Pages
再看if,success
至于uses,peaceiris/actions-gh-pages@v4
从with来看,github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/
keep_files: false
b) 常见错误与快速定位方法:
错误现象 可能原因 方法
Composer command not found
- 未将 /usr/local/bin/composer 加入 $PATH。
- 确认 /usr/local/bin 已在 $PATH;若未加入,可编辑 ~/.bashrc 添加 export PATH=$PATH:/usr/local/bin 并重新加载。
Class not found 在运行 phpDocumentor 时
- 未正确加载 vendor/autoload.php。怎么说呢,
- 确保已执行 composer install;若是全局模式,请检查 ~/.config/composer/vendor/autoload.php 是否被引用。
Permission denied 删除旧 docs 文件夹时
- 当前使用者无权写入目标目录。
- 使用 sudo chown $USER:$USER docs && sudo chmod -R u+rwX docs 修复权限,或将建立目录放在使用者空间内。
\
<\/table>
`

