autoload.php中ComposerAutoloaderInit之后的随机字符串起什么作用?

时间:2019-08-18 00:25:11

标签: composer-php

我不需要编写使用composer-php的软件包的帮助。我只是想了解composer-php的代码。

我关注的是类名中的随机字符串,例如ComposerAutoloaderInit6747b392e558bd54c2f1031b944d5730中的autoload.php

此随机字符串可以实现什么?我怀疑目标是确保类名唯一,但是为什么呢?唯一的类名称解决了哪些问题?

1 个答案:

答案 0 :(得分:1)

在PHP中,不能有两个具有相同FQN(完全限定名称)的不同类。但是您可以有多个自动加载器。拥有唯一的名称可确保您可以由Composer生成多个独立的自动加载器,而不会出现名称冲突的风险。

这不是您可能想到的那种罕见情况。通常,您在项目中只有一个自动加载器,但是在没有本机Composer支持的生态系统中(如WordPress-插件经常捆绑Composer的自动加载器作为其代码的一部分)或打包在phar归档文件中的工具(如phpunit),您可能会生成两个单独的自动加载器作曲家。唯一的名称确保它们可以彼此共存。

顺便说一句:此后缀可通过autoloader-suffix设置进​​行配置。