所以 - 我的bootstrap.php中有一个简单的PCR0自动加载器,它应该从供应商目录中加载任何与PCR0兼容的库类......
spl_autoload_register( function( $classname ) {
$path = preg_match( '/\\\\/', $classname )
? str_replace( '\\', DIRECTORY_SEPARATOR, $classname )
: str_replace( '_', DIRECTORY_SEPARATOR, $classname );
$file = VENDORS_PATH . DIRECTORY_SEPARATOR . $path . '.php';
if ( file_exists( $file ) ) {
require_once( $file );
}
});
我不确定我是否理解为什么composer会在 vendor 目录中生成自动加载文件(即 composer 目录和 autoload.php 文件)?
我可以阻止Composer生成这些自动加载器文件吗?还是我错过了什么?我认为我不需要它们吗?
答案 0 :(得分:4)
有三个与自动加载相关的文件,每个文件都有不同的用途。
现在你提到你有自己的PSR-0类加载器,你不应该将它用于作曲家依赖 - 你应该只需要/包括vendor / autoload.php并让作曲家处理剩下的事情。
这就是为什么没有选项来禁用自动加载文件的生成。最后,composer应该允许你使用安装的库,并通过提供你需要的所有加载来实现。
答案 1 :(得分:0)
不幸的是,听起来像Composer不支持此功能:https://github.com/composer/composer/issues/1663
答案 2 :(得分:0)
我个人将这些文件添加到.gitignore,因为我正在处理的项目有一个工作正常的自动加载器