作曲家如何解决“ dumpautoload”命令?

时间:2019-09-24 14:32:36

标签: php laravel composer-php command-line-arguments

使用Composer version 1.8.6 2019-06-11 15:03:05 dumpautoload命令可用于以下所有变体

composer dump-autoload
composer dumpautoload
composer dumpautoloa
composer dumpautolo
composer dumpautol
composer dumpauto
composer dumpaut
composer dumpau
composer dumpa
composer dump
composer dum
composer du

直到composer d抛出

  

[Symfony \ Component \ Console \ Exception \ CommandNotFoundException]
    命令“ d”不明确(取决于,dump-autoload和另外1个)。

如何解决命令?我了解在composer source here

中将dumpautoload设置为dump-autoload的别名
class DumpAutoloadCommand extends BaseCommand
{
   protected function configure()
   {
      $this->setName('dump-autoload')->setAliases(array('dumpautoload'))

setAliases source here中的composer/RootPackage.php仅将别名分配给private $aliases;属性

public function setAliases(array $aliases)
{
    $this->aliases = $aliases;
}

但是其他版本如何解决?

1 个答案:

答案 0 :(得分:3)

Composer建立在symfony/console上,用于搜索命令的代码位于Symfony\Component\Console\Application::find中,可以在https://github.com/symfony/console/blob/master/Application.php#L596上找到它。基本上,所有已注册的命令都会被检查直到最短的,可清楚识别的长度-因此使用similar_text的方法已经太复杂了;)