composer 中自动加载函数为何以php5.6做区分

无名之辈的小哈哈 2018-04-04 01:53:31
**composer中 自动加载函数中 getloader中为何要以php5.6作为区分$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');,这个区分主要区分的什么?**

```
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}

spl_autoload_register(array('ComposerAutoloaderInit812e73c32a9b50cd0733a00f38392e8a', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInit812e73c32a9b50cd0733a00f38392e8a', 'loadClassLoader'));

$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';

call_user_func(\Composer\Autoload\ComposerStaticInit812e73c32a9b50cd0733a00f38392e8a::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}

$loader->setClassMapAuthoritative(true);
$loader->register(true);

if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInit812e73c32a9b50cd0733a00f38392e8a::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequire812e73c32a9b50cd0733a00f38392e8a($fileIdentifier, $file);
}

return $loader;
}
}
```
...全文
626 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2018-04-04
  • 打赏
  • 举报
回复
那是因为你的那个项目使用了 php5.6 及以上才有的功能,当然也可能是仅 php5.6 才有的功能 composer 会检测当前 php 版本是否符合指定的要求,若不符合,会自动替你更成相应的版本(请保证网络畅通)

4,251

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧