require 是运行时必需依赖,require-dev 仅用于开发测试;误放会导致线上崩溃或冗余安装;判断标准是代码是否直接使用该包类/命名空间。

require 和 require-dev 的核心区别在于:前者是项目运行时必需的依赖,后者仅在开发、测试或构建阶段需要。用错会导致线上环境出问题,或者本地开发无法启动。
项目上线后,代码实际执行时离不开的包,必须放 require。
判断标准很简单:删掉这个包,项目启动报错 或 关键功能直接失效,就属于 require。
只在你写代码、跑测试、生成文档或优化构建时才用得上的工具,全归 require-dev。
部署到生产环境时,通常会加 --no-dev 参数(例如 composer install --no-dev),这些包就不会被安装,既节省空间又减少安全面。
把本该在 require 的包错放 require-dev,最典型的就是“本地能跑,上线就炸”:
《PHP设计模式》首先介绍了设计模式,讲述了设计模式的使用及重要性,并且详细说明了应用设计模式的场合。接下来,本书通过代码示例介绍了许多设计模式。最后,本书通过全面深入的案例分析说明了如何使用设计模式来计划新的应用程序,如何采用PHP语言编写这些模式,以及如何使用书中介绍的设计模式修正和重构已有的代码块。作者采用专业的、便于使用的格式来介绍相关的概念,自学成才的编程人员与经过更多正规培训的编程人员
341
Composer 不会自动校验语义合理性,一切靠开发者判断。建议每次加新包前,先问一句:这个类/命名空间,我的 app.php 或 index.php 会直接 new 或 use 吗?
团队项目里,require-dev 不只是“我本地用”,它也影响 CI 流程:
composer install(不带 --no-dev),否则 PHPUnit 找不到composer install --no-dev --optimize-autoloader
可以定期执行 composer show --dev 检查 require-dev 列表,确认没有“混进来”的 runtime 依赖。
基本上就这些。不复杂但容易忽略,关键是分清“运行时”和“开发时”的边界。
以上就是Composer中的require和require-dev如何正确使用?(场景分析)的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号