installed.php和installed.json功能相同但格式不同,前者为PHP数组后者为JSON;2. installed.php加载更快因无需解析,提升Composer运行效率;3. Composer自动选择生成其中一文件,新版倾向installed.php以优化性能,开发者通常无需干预。

Composer 的 installed.php 和 installed.json 文件都用于记录当前项目已安装的依赖包信息,但它们在格式、用途和性能方面有明显区别。
1. 文件格式不同
installed.json 是标准的 JSON 格式文件,内容可读性强,便于程序解析。它直接以文本形式存储所有已安装包的元数据,比如名称、版本、自动加载配置等。 installed.php 则是 PHP 数组格式的文件,内容同样是已安装包的信息,但以 PHP 原生数组返回,通常用return []; 语法封装,避免被当作普通脚本执行。
2. 性能与加载效率
Composer 在运行时需要读取已安装包的信息来处理自动加载或依赖解析。读取 PHP 数组(installed.php)比解析 JSON 字符串(installed.json)更快,因为 PHP 可以直接include 或 require 该文件,无需额外的 json_decode 操作。
因此,installed.php 主要是为了提升性能而存在的,特别是在大型项目中,减少解析开销有助于加快 Composer 执行速度。
3. 使用场景与生成方式
这两个文件通常不会同时存在。默认情况下,Composer 会根据环境选择生成哪一个。较新版本的 Composer 更倾向于生成 installed.php,以提高运行效率。 如果你查看vendor/composer/ 目录,可能会看到其中一个文件。它们由 composer install 或 composer update 自动生成,不应手动修改。
此外,installed.json 更容易被人阅读和调试,适合开发分析;而 installed.php 更适合生产环境下的高效读取。
基本上就这些 —— 两者功能一致,核心区别在于格式和性能。Composer 会自动选择合适的形式,开发者一般无需关心具体使用哪一个。











