exclude-from-classmap用于在生成classmap时跳过指定目录,如src/DevTools/和tests/Integration/,避免包含开发或测试类,减少内存占用并防止敏感代码暴露,仅影响classmap不作用于PSR-4。

Composer 在处理 autoload.exclude-from-classmap 配置时,主要作用是告诉自动加载器在生成类映射(classmap)时跳过指定的文件或目录。这个配置不会影响 PSR-4 或 PSR-0 的自动加载逻辑,只对 classmap 类型的自动加载生效。
Composer 支持多种自动加载方式,其中 classmap 是通过扫描指定目录中的所有 PHP 文件,解析出其中定义的类、接口和 trait,并生成一个从类名到文件路径的映射表。这个过程在执行 composer dump-autoload 时完成。
由于 classmap 扫描的是文件内容(如 token 解析),它比 PSR-4 更慢但更全面——能发现不符合命名规范的类。
当你在 composer.json 中配置了:
Composer 会:
src/ 和 tests/ 目录下的 PHP 文件生成 classmapsrc/DevTools/ 和 tests/Integration/ 的文件vendor/composer/autoload_classmap.php 中常见用途包括:
注意:PSR-4 路径不需要也不支持 exclude-from-classmap,因为其加载基于命名空间前缀映射,不会扫描整个目录。
基本上就这些。exclude-from-classmap 是一个细粒度控制机制,帮助你精简自动生成的类映射表,减少内存占用并避免不必要的类暴露。不复杂但容易忽略。
以上就是composer是如何处理"autoload"."exclude-from-classmap"配置的?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号