installed.json是Composer生成的元数据快照,位于vendor/composer/,记录已安装包的名称、版本、路径、自动加载配置等信息,用于构建自动加载映射、支持插件运行和依赖解析,不可手动修改,需通过composer install/update维护,其内容与composer.lock一致可确保环境稳定。

理解 Composer 的 installed.json 文件,关键在于明白它是 Composer 在执行安装或更新操作后生成的元数据快照。这个文件记录了当前项目中所有已安装的依赖包及其详细信息,主要用于维护依赖状态、执行自动加载和进行依赖解析。
1. 文件位置与作用
该文件通常位于:
vendor/composer/installed.json
它不是供手动编辑的配置文件,而是由 Composer 自动管理的运行时数据。
主要用途包括:
- 构建类自动加载映射(如 PSR-4、PSR-0)
- 记录每个包的实际安装路径和版本
- 支持插件获取已安装包的信息
- 辅助依赖冲突检测和更新判断
2. 文件结构解析
文件内容是一个 JSON 数组,每一项代表一个已安装的包,常见字段如下:
- name:包名称,如 "monolog/monolog"
- version:安装的具体版本,如 "2.9.1"
- source:源码来源,包含 type(git)、url 和 reference(commit hash)
- dist:分发包信息,含 url、type(zip)、shasum 和 reference
- type:包类型,如 "library"、"metapackage"、"plugin"
- autoload:自动加载配置,定义了 PSR-4、classmap 等规则
- install-path:相对于 vendor 目录的安装路径
- notification-url:Composer 更新检查用的回调地址
- license:许可证信息
- authors:作者列表
- description:包描述
- support:支持信息,如 issue tracker 链接
某些包(如 metapackage)可能缺少 source/dist 字段,因为它们不包含实际代码。
3. 实际查看与分析方法
你可以直接用文本编辑器或命令行查看内容:
cat vendor/composer/installed.json为便于阅读,可格式化输出:
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
重点关注以下几点:
- 确认某个包是否真的被安装以及其确切版本
- 检查 autoloading 配置是否正确生成
- 排查为何某个包未参与自动加载(可能是 autoload 配置缺失)
- 查看包是从 dist 缓存还是从源仓库(如 git)安装的
4. 注意事项与使用建议
虽然可以读取该文件,但不应手动修改它。任何更改都应在 composer.json 中进行,并通过 composer install 或 composer update 触发重新生成。
在 CI/CD 或生产环境中,如果发现 installed.json 与 lock 文件不符,可能导致自动加载异常或版本偏差,应优先运行 composer install 同步状态。
基本上就这些 —— 它是 Composer 内部机制的重要组成部分,理解其结构有助于调试依赖问题。









