本质区别在于使用场景和安装时机:require是运行必需依赖,所有环境都安装;require-dev仅开发测试时需要,生产环境用--no-dev跳过。

本质区别在于使用场景和安装时机不同:require 是项目运行必需的依赖,必须存在于所有环境;require-dev 是仅在开发、测试阶段需要的工具类依赖,生产环境默认不装。
require:上线就靠它
这些包是应用启动和运行的基石。没有它们,代码根本跑不起来。
- 框架本身(如 Laravel、Symfony、Yii2)
- 数据库操作层(如 doctrine/orm、illuminate/database)
- 核心 SDK(如 aliyuncs/oss-sdk-php、wechat/php-sdk)
- 日志、缓存、HTTP 客户端等运行时组件(如 monolog/monolog、guzzlehttp/guzzle)
执行 composer install 或 composer update 时,它们一定会被安装,且会随项目一起部署到生产服务器。
require-dev:只在你写代码时帮忙
这些包不参与业务逻辑,只服务开发流程,比如写测试、查 bug、规范代码。
- 测试框架:phpunit/phpunit、pestphp/pest
- 代码质量工具:phpstan/phpstan、friendsofphp/php-cs-fixer
- 调试辅助:yiisoft/yii2-debug、symfony/var-dumper
- 生成器与模拟器:fakerphp/faker、mockery/mockery
它们只在你本地或 CI 环境中用 composer install(不加参数)时才装。上线前加 --no-dev 就彻底跳过,既省空间又少风险。
标签: composer require php laravel js json yii 工具 iis 区别 模拟器
还木有评论哦,快来抢沙发吧~