代码之家  ›  专栏  ›  技术社区  ›  user2906759

为什么composer需要手动生成自动加载文件?

  •  0
  • user2906759  · 技术社区  · 10 年前

    使用安装库时 composer 它会生成 autoload_classmap.php 为了连接不同的 namespaces 在课堂上。例如:

    'PHPUnit_Framework_Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php'
    

    当可以用一个简单的 spl_autoload_register() 而不需要每次生成新文件?

    2 回复  |  直到 10 年前
        1
  •  2
  •   deceze    10 年前

    因为生成所有类的列表以及它们可以在哪里找到是一项昂贵的任务 真正地 不希望每次调用自动加载程序时都要这样做,甚至不希望每次都要为一个新请求而这样做。您只需在每次 vendor 文件夹更改并将其存储在某个位置。这正是Composer所做的。

        2
  •  0
  •   Édipo Costa Rebouças    10 年前

    Composer使用带有一些功能的PSR-0/4自动加载器来注册与PSR-0/4类和自动加载器不兼容的类。

    如果使用该选项 --optimize-autoloader (-o) ,它将生成一个类映射以获得更快的自动加载器。

    工具书类