Composerのdumpautoloadはdump-autoloadのエイリアス

composer.jsonでオートローダの設定を更新する時はcomposer dump-autoloadコマンドを実行するが、(ハイフンなしで)dumpautoloadとしている記事もよく見かける。どう違うの?

ふと思って調べてみたものの、dumpautoloadはdump-autoloadのエイリアスというだけで違いは何もないようだ。

->setName('dump-autoload')
->setAliases(array('dumpautoload'))

省略もできる

なので、どちらを入力しても問題ない。何ならduだけでも構わない。以下はすべて等価の命令だ。

composer du
composer dum
composer dump
composer dump-
composer dump-a
composer dump-au
composer dump-aut
composer dump-auto
composer dump-autol
composer dump-autolo
composer dump-autoloa
composer dump-autoload
composer dumpa
composer dumpau
composer dumpaut
composer dumpauto
composer dumpautol
composer dumpautolo
composer dumpautoloa
composer dumpautoload

composer dだけだと……

[Symfony\Component\Console\Exception\CommandNotFoundException]
Command "d" is ambiguous (depends, dump-autoload and 1 more).

dependsやdiagnoseがあるため例外が投げられる。

dump-autoloadに限らず、特定できる範囲でコマンドは省略できるということらしい。これはSymfonyコンソールの仕様だからLaravelなどでも同じ。

As Composer uses symfony/console you can call commands by short name if it's not ambiguous.

環境