Php 为什么composer需要手动生成自动加载文件?
使用Php 为什么composer需要手动生成自动加载文件?,php,composer-php,autoload,Php,Composer Php,Autoload,使用composer安装库时,它会生成一个自动加载的_classmap.php,以便将不同的名称空间与类连接起来。例如: 'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php' 如果可以用一个简单的spl\u autoload\u register()来完成,并且每次都不需要生成新文件,那么为什么还需要这样做呢?因为生成所有类的列表以及在哪里可以找到它们是一项昂贵的任务,
composer
安装库时,它会生成一个自动加载的_classmap.php
,以便将不同的名称空间
与类连接起来。例如:
'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php'
如果可以用一个简单的
spl\u autoload\u register()
来完成,并且每次都不需要生成新文件,那么为什么还需要这样做呢?因为生成所有类的列表以及在哪里可以找到它们是一项昂贵的任务,而您真的不希望每次调用autoloader时都要这样做,甚至每次都有新的要求。每次供应商
文件夹更改时,您只需编译一次此信息,并将其存储在某个位置。这正是Composer所做的。Composer使用带有某些功能的PSR-0/4自动加载器来注册与PSR-0/4类和自动加载器不兼容的内容
如果使用选项“优化自动加载程序(-o)”,它将生成一个类映射以获得更快的自动加载程序
参考资料