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

所以 - 我的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 );
    }
});

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

我可以停止Composer生成这些自动加载器文件吗? 或者我错过了什么? 我不认为我需要他们?


有三个自动加载相关文件,每个都有不同的目的。

  • vendor / autoload.php初始化作曲者的自动加载器。 Composer提供了一个自动加载器来支持作曲家兼容库的加载。
  • vendor / composer / autoload_classmap.php此文件由classmap自动加载器使用,适用于甚至不兼容PSR-0的库或生产环境(classmap比通过文件系统的查找更快)。
  • vendor / composer / autoload_namespaces.php这是作曲家自带的PSR-0自动加载配置
  • 现在你提到你有自己的PSR-0类加载器,你不应该将它用于作曲者的依赖关系 - 你只需要/包含vendor / autoload.php并让作曲家完成剩下的工作。

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


    不幸的是,听起来Composer不会支持这个功能:https://github.com/composer/composer/issues/1663


    就我个人而言,我将这些文件添加到.gitignore,因为我正在处理的项目有一个自动加载器,可以正常工作

    链接地址: http://www.djcxy.com/p/66253.html

    上一篇: Skip autoload files generation in composer?

    下一篇: how to use addPreferencesFromResource for android 2.X?