composer.json 是 php 项目依赖管理配置文件,定义项目基本信息、依赖和自动加载规则。1. 基础字段包括 name、description、type、license 和 authors,用于声明项目元数据;2. require 指定生产环境依赖,require-dev 声明开发环境依赖,支持版本约束如 ^8.1 表示兼容性更新。

composer.json 是 Composer 的核心配置文件,用于定义 PHP 项目的依赖关系、元信息和自动加载规则。它采用 json 格式编写,必须位于项目根目录下。下面详细介绍其常用字段和写法,帮助你正确配置。
1. 基础字段:项目基本信息
每个 composer.json 至少应包含以下基础信息:
- name:项目名称,格式为 vendor/project-name,如
myorg/blog - description:项目简短描述
- type:项目类型,默认是
library,也可能是project、metapackage等 - license:开源协议,如
MIT、GPL-2.0+ - authors:作者列表,支持 name、email、homepage、role
示例:
{ "name": "myorg/myapp", "description": "A simple web application", "type": "project", "license": "MIT", "authors": [ { "name": "John Doe", "email": "john@example.com", "homepage": "https://example.com", "role": "Developer" } ] }
2. require 和 require-dev:管理依赖
这两个字段定义项目所需的外部包。
- require:生产环境必须的依赖
- require-dev:仅开发时使用,如测试工具、调试器
版本约束写法示例:
"require": { "php": "^8.1", "monolog/monolog": "^2.0" }, "require-dev": { "phpunit/phpunit": "^9.5" }
常见版本写法:
-
^1.2.3:兼容更新,等价于 >=1.2.3 且 -
~1.2.3:允许补丁级更新,>=1.2.3 且 -
*:任意版本(不推荐) -
dev-main:指定分支(慎用,不稳定)
3. autoload:自动加载配置
Composer 支持 PSR-4 和 PSR-0 自动加载,最常用的是 PSR-4。
- psr-4:命名空间到目录的映射
- classmap:扫描指定目录生成类映射(兼容旧代码)
- files:指定需全局包含的 PHP 文件
示例:
"autoload": { "psr-4": { "MyApp": "src/" }, "classmap": ["legacy/"], "files": ["helpers.php"] }
配置后运行 composer dump-autoload 生成自动加载文件。
4. scripts:执行自定义脚本
可在安装、更新等生命周期中触发自定义命令。
"scripts": { "post-install-cmd": "echo 'Installation complete.'", "post-update-cmd": "php generate-config.php" }
Composer 支持多种事件,如 pre-install-cmd、post-autoload-dump 等。
5. 其他常用配置项
- minimum-stability:最低稳定性,默认
stable,可设为dev、beta等 - prefer-stable:true 表示优先选择稳定版本
- config:配置选项,如
{"sort-packages": true}可让 require 包按字母排序 - repositories:自定义包源,如私有 Git 或 Satis 源
示例:
"config": { "sort-packages": true, "optimize-autoloader": true }, "minimum-stability": "stable", "prefer-stable": true
基本上就这些。一个完整且规范的 composer.json 能让项目更易维护、协作更顺畅。注意保持格式合法,可用 composer validate 检查语法。初始化项目时也可用 composer init 交互式生成。
以上就是composer.json文件到底该怎么写_Composer核心配置文件composer.json语法详解的详细内容,更多请关注php中文网其它相关文章!