Composer本身不生成文档,所有“自动生成”均由PHPDocumentor等外部工具完成;其自动化本质是通过composer.json的scripts封装调用命令,而非Composer自身能力。
Composer 本身不生成文档,所有“自动生成”的实际工作都由外部工具完成;你看到的自动化效果,本质是用
的
把 PHPDoc 工具链封装成了可复用命令。
为什么
不会自动出文档
因为 Composer 只做三件事:解析
、下载包到
、生成自动加载映射。它不读 PHPDoc 注释,不扫描类结构,也不调用
或
。常见错误是把
放进
就以为万事大吉——其实只是装进了
,后续仍需显式运行。
或
钩子里直接写生成命令,会导致每次
都触发全量文档重建,CI 构建变慢、本地开发卡顿
想让文档真正“自动”,得靠 CI/CD(如 GitHub Actions)监听
变更后执行
,而非依赖 Composer 自身生命周期
不会触发任何文档逻辑,它只刷新类映射,和注释解析完全无关
怎么配
的
才可靠
核心原则:脚本只负责调用,不嵌逻辑。所有路径、参数、模板都应外置,避免 JSON 字符串内转义和调试黑洞。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
用
,而不是
—— 前者靠配置文件管理路径与排除规则,后者每次改目录都要改命令
如果项目含私有 SDK,且命名统一为
,在
的
里加
,别指望
输出能自动喂给文档工具
加
参数(如
),否则缓存可能让你看不到刚写的
更新
不要在
里写
或
,PHP CLI 环境和 shell 终端行为不一致,容易在 CI 中静默失败
里最容易填错的三个地方
90% 的生成失败或输出为空,都卡在这三项配置上。它们不是可选装饰,而是强制路径锚点。
必须是相对于
文件所在位置的路径,不是项目根目录;若
在
下,就得写
要写全路径片段,不能只写
;漏掉这一行,
会尝试解析测试类里的
,然后报 “Class not found” 警告并跳过整个命名空间
设为
才能从
的
字段自动取值;设成
就是硬编码,发版时必须手动同步改两处
真正难的不是跑通第一次生成,而是让文档持续准确:每次改
,就得同步更新
和
;否则
输出的永远是过期接口。工具链再顺,也救不了没维护的注释。
composer.jsonscriptscomposer installcomposer.jsonvendor/phpdocumentordoctumphpdocumentor/phpdocumentorrequire-devvendor/bin/phpdocpost-install-cmdpost-autoload-dumpcomposer installsrc/composer run docscomposer dump-autoloadcomposer.jsonscripts"docs": "php vendor/bin/phpdoc --config=phpdoc.xml""docs": "phpdocumentor -d src -t docs/api"corp/*phpdoc.xmlvendor/corp/internal-sdk/srccomposer show--force"docs": "php vendor/bin/phpdoc --config=phpdoc.xml --force"@param string $idscriptsexec()shell_exec()phpdoc.xmlsrc phpdoc.xmlphpdoc.xmldocs/../srcsrc/Tests Testsphpdocumentor$this->mock()*composer.jsonversion"1.2.0"public function save(User $user): bool@param@returnphpdocumentor