在作曲家中跳过自动加载文件生成?

Rya*_*ert 7 php composer-php

所以 - 我的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 );
    }
});
Run Code Online (Sandbox Code Playgroud)

我不确定我是否理解为什么composer会在供应商目录中生成自动加载文件(即composer目录和autoload.php文件)?

我可以阻止Composer生成这些自动加载器文件吗?还是我错过了什么?我不认为我需要它们?

ppe*_*ann 4

共有三个与自动加载相关的文件,每个文件都有不同的用途。

  • vendor/autoload.php 初始化 Composer 的自动加载器。Composer 提供自动加载器来加载 Composer 兼容的库。
  • vendor/composer/autoload_classmap.php 该文件由类映射自动加载器使用,适用于甚至不兼容 PSR-0 的库或生产环境(类映射比通过文件系统查找更快)。
  • vendor/composer/autoload_namespaces.php 这是composer附带的PSR-0自动加载的配置

现在您提到您有自己的 PSR-0 类加载器,您不应该将其用于 Composer 依赖项 - 您只需要求/包含供应商/autoload.php 并让 Composer 处理其余的事情。

这就是为什么没有选项来禁用自动加载文件的生成。最后,作曲家应该使您能够使用已安装的库,并通过提供您需要的所有加载来使您能够使用。