千家信息网

composer自动加载器优化的方法

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了composer自动加载器优化的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。自动加载器优化通常情况下,Comp
千家信息网最后更新 2026年10月31日composer自动加载器优化的方法

这篇文章主要介绍了composer自动加载器优化的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

自动加载器优化

通常情况下,Composer 的自动加载器运行速度相对而言是比较快的。 但是,由于 PSR-4 和 PSR-0 的自动加载规则是在最终解析一个类之前需要去检查文件系统。这会导致自动加载的速度变得相当缓慢,但在开发环境中,这会是一种非常便捷的加载方式,因为当你新建了一个类时,加载器会立即发现并使用该类,而不需要你去重建自动加载器的配置。

这种加载规则导致的问题在生产环境中才真正体现出来,在生产环境中,你可以在每次部署之前非常轻松的重建配置,而且在部署之间不会随机出现新类,因此你不需要其一直检查文件系统,你通常都希望自动加载能尽可能快速的完成。

出于以上原因,Composer 提供了一些自动加载器的优化策略。

注意:你不应该在开发环境下使用本文所述的任何一种优化策略,因为这会导致你在添加或移除类时出现各种问题。事实上,在开发环境中应用这些设置所带来的性能提升和其所带来的问题相比,是远远不值得的。

优化级别 1:类映射生成

怎么运行它呢?

有几个选项可以启用此功能:

在 composer.json 的配置中设置 "optimize-autoloader": true

使用 -o / --optimize-autoloader 调用安装或更新

使用 -o / --optimize 调用 dump-autoload

它有什么作用?

类映射生成实质上是将 PSR-4/PSR-0 规则转换为类映射规则。这使得一切都快很多,因为已知的类映射会立即返回路径,而 Composer 可以保证类在那里,因此不需要文件系统检查。

在 PHP 5.6+ 中,类映射也缓存在 opcache 中,这大大改善了初始化时间。如果确保启用了 opcache ,那么类映射应该会立即加载,类加载也会很快。

权衡

这种方法没有真正的权衡。它应该始终在生产中启用。

唯一的问题是它没有跟踪自动加载 (即,当它找不到给定的类时),因此那些回退到 PSR-4 的规则仍然有可能导致文件系统检查速度变慢。要解决此问题,存在两个二级优化选项,如果您对项目中不存在的类执行了大量的 class_exists 检查, 那么可以决定启用这两个选项。

优化级别 2/A :权威类映射

怎么启用它呢?

有几个选项可以启用此功能:

在 composer.json 的 config 键中设置 "classmap-authoritative": true

使用 -a / --classmap-authoritative 调用安装或更新

使用 -a / --classmap-authoritative 调用 dump-autoload

它有什么作用呢?

启用此选项会自动启用 1 级类映射优化。

这个选项很简单,它说如果在类图中找不到某些东西,那么它就不存在,自动加载器不应该根据 PSR-4 规则试图查看文件系统。

权衡

此选项能使自动装填器始终快速返回。另一方面,它还意味着如果由于某种原因在运行时生成类,则不允许自动加载。如果您的项目或任何依赖项执行此操作,那么您可能会在生产中遇到 "未找到类" 的问题。小心启用它。

注意:这不能与级别 2/B 优化结合使用。您必须选择一个,因为它们以不同的方式解决相同的问题。

优化级别 2/B: APCu 缓存

怎么启用它呢?

有个选项可以启用此功能:

在 composer.json 的配置键中设置 "apcu-autoloader": true

使用 --apcu-autoloader 调用安装或更新

使用 --apcu 调用 dump-autoload

它有什么作用?

此选项将 APCu 缓存添加为类映射的备用。它不会自动生成类映射,因此如果您愿意,仍需手动启用 1 级优化。

无论是否找到类,该事实总是缓存在 APCu 中,因此可以在下一个请求时快速返回。

权衡

此选项需要 APCu ,它可能对您有用也可能不适用。它还使用 APCu 内存进行自动加载,但它是安全使用的,并且不会导致找不到类,如上面的权威类映射优化。

注意:这不能与级别 2/A 优化结合使用。您必须选择一个,因为它们以不同的方式解决相同的问题。

感谢你能够认真阅读完这篇文章,希望小编分享的"composer自动加载器优化的方法"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

问题 规则 文件 系统 级别 检查 环境 篇文章 缓存 生成 配置 方法 作用 功能 方式 速度 中设 开发 更新 运行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云信互联网科技有限公司 互联网科技深圳 科技互联网创业计划书 镁科技互联网资讯平台 科技伦理 互联网公司 互联网科技生活的内容 深圳市运趣互联网科技有限公司 佳云科技和互联网广告 互联网对科技的发展 阿大互联网科技有限公司 互联网科技研发水平 亳州好赞互联网科技有限公司 中国科技创新与世界互联网大会 乌鲁木齐新华智原互联网科技学校 朱啸虎曾投资哪些互联网科技企业 华中科技大学互联网的牛人 国大互联网教育科技有限公司薪资 广州梦谷互联网科技有限公司领导 互联网科技企业商标注意事项 如何强化互联网金融科技 手磨咖啡 互联网与未来科技 太原新华互联网科技学校怎么样 随着互联网科技发展 科技互联网大厂 南平创想时代互联网科技有限公司 四川互联网展示科技馆设计 上海互联网科技公司ppt 35岁以上互联网科技行业 盐城市攀科互联网科技有限公司
0