首页 > 解决方案 > 如何强制 composer dump-autoload 从头开始​​?

问题描述

我应该手动删除的确切文件集是什么,以确保后续调用的composer dump-autoload行为与刚刚composer install编辑但以前从未dump-autoload编辑过的处女新克隆的作曲家项目中的行为完全相同?

我正在尝试重现和调试在composer dump-autoload作为 docker 映像构建的一部分执行的命令期间发生的问题。

我想避免在寻找解决方案的迭代过程中实际运行 docker build 数十次的缓慢。

删除整个目录并每次vendor/重做也是次优的。composer install

标签: phpcomposer-phpautoload

解决方案


它总是从“零开始”运行。但我想如果你想更加确定,你可以简单地删除以前生成的文件。

创建的文件是vendor/autoload.phpand some on vendor/composer,因此您可以在重新转储自动加载器之前手动删除它们。

这些是该目录的新内容 a composer install --no-autoloader

└── vendor/
   └── composer/
      ├── semver/
      ├── xdebug-handler/
      ├── installed.json
      └── LICENSE

这些是运行后的内容composer dump-autoload

├── vendor/
│   └── composer/
│      ├── semver/
│      ├── xdebug-handler/
│      ├── autoload_classmap.php
│      ├── autoload_files.php
│      ├── autoload_namespaces.php
│      ├── autoload_psr4.php
│      ├── autoload_real.php
│      ├── autoload_static.php
│      ├── installed.json
│      └── LICENSE
└── autoload.php

所以你基本上只需要删除

  • vendor/autoload.php
  • vendor/composer/autoload_*
  • vendor/composer/ClassLoader.php

您可以composer dump-autoload从原始起点重新运行。


推荐阅读